如何为DataGrid表创建可变数量的列?

时间:2014-02-13 15:45:28

标签: c# datagrid

如何创建具有可变列数的DataGrid表?

示例:假设我们有一个整数列表List<List<int>>列表。所有内部列表都具有相同的长度n。现在我想为每个整数列表创建一行,并为每个整数创建一个额外的列。

例如:对于两个整数列表{1, 2, 3}4, 5, 6,DataGad将如下所示:

1 | 2 | 3
--+---+---
4 | 5 | 6

通常,我为我的DataGrid行元素创建一个自己的类,比如

class MyDataGridRecord {
  public int first { get; set; }
  public int second { get; set; }
  ...
} 

但是由于我不知道我有多少列,所以我不能用固定数量的字段编写这样的类。

1 个答案:

答案 0 :(得分:1)

我想你可以这样做:

var list = new List<List<int>>
        {
            new List<int>() {2, 3, 4, 5},
            new List<int>() {2, 3, 4, 5},
            new List<int>() {2, 3, 4, 5},
            new List<int>() {2, 3, 4, 5}
        };

var columnCount = list[0].Count;

for (int i = 0; i < columnCount; i++)
{
     dataGridView1.Columns.Add(i.ToString(),"Column " + i+1);
}
for (int k = 0; k < list.Count; k++)
{
   dataGridView1.Rows.AddCopy(0);
}


for (int k = 0; k < list.Count; k++)
{
      for (int i = 0; i < list[k].Count; i++)
      {
            dataGridView1.Rows[k].Cells[i].Value = list[k][i];
      }
}