如何创建具有可变列数的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; }
...
}
但是由于我不知道我有多少列,所以我不能用固定数量的字段编写这样的类。
答案 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];
}
}