Почему преобразование источника данных в набор данных препятствует форматированию - PullRequest
0 голосов
/ 21 сентября 2009

Я столкнулся со странной проблемой, которая может быть проиллюстрирована с помощью 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 голосов
/ 21 сентября 2009

Вам не нужно устанавливать DataColumn DataType?

DataColumn col1;
col1.DataType = Type.GetType("System.DateTime"); // or other type
0 голосов
/ 21 сентября 2009

Первый использует привязку datatables. использовать отражатель, чтобы выяснить, что происходит там.

...