为什么将数据源转换为数据表会阻止格式化

时间:2009-09-20 21:51:55

标签: c# list datagridview formatting datatable

我遇到了一个奇怪的问题,可以用下面的2个单独的代码块来说明。

如果我使用第一个块,您可以清楚地看到第5列应用了货币格式。

使用第二个块,唯一的区别是字符串数组被添加到数据表中,然后用作数据源 - > 未应用格式设置!

任何人都可以解释这种行为并为我提供解决方法吗?我正在使用一个需要格式化的大型数据表。

谢谢!

第1区:

string[] list = new string[10];

for (int i = 0; i < 10; i++)
{
    list[i] = i.ToString();
}

this.dataGridViewX1.DataSource = list;
this.dataGridViewX1[0, 5].Style.Format = "C2";

第2栏:

string[] list = new string[10];

for (int i = 0; i < 10; i++)
{
    list[i] = i.ToString();
}

DataTable dt = new DataTable();
dt.Columns.Add();

for (int i = 0; i < list.Length; i++)
{
    DataRow dr = dt.NewRow();
    dr[0] = list[i];

    dt.Rows.Add(dr);
}

this.dataGridViewX1.DataSource = dt;
this.dataGridViewX1[0, 5].Style.Format = "C2";

2 个答案:

答案 0 :(得分:0)

First One使用数据表绑定。用反射器弄清楚那里会发生什么。

答案 1 :(得分:0)

您不需要设置DataColumn DataType吗?

DataColumn col1;
col1.DataType = Type.GetType("System.DateTime"); // or other type