我通常不发帖提问,我知道这个答案已经出现在某个地方,但我不是因为某些原因找到它。基本上,我有一个datagridview,它具有可变数量的列和可变数量的行。因此,当我为屏幕构建它时,我首先使用以下代码添加列:
// Set column names
for (int i = 0; i < count; i++)
{
fieldName = fromFileFields[i];
dtaRecordDisplay.Columns.Add(fromFileFields[i}, fromFileFields[i});
}
现在,我想用这样的东西填充视图中的行:
// Set row data
for (int i = 0; i < count; i++)
{
dtaRecordDisplay.Rows.Add(Row1, Row2, etc., etc., etc..........);
}
我很难弄清楚循环能够一次添加所有数据行。有没有人对如何实现这一点有任何想法?
提前致谢!
答案 0 :(得分:6)
在这种情况下,我会使用要处理的列和行填充DataTable,并将其绑定到网格。
DataTable dt = new DataTable();
// first add your columns
for (int i = 0; i < count; i++)
{
dt.Columns.Add(fromFileFields[i]);
}
// and then add your rows
for (int i = 0; i < count; i++)
{
var row = dt.NewRow();
// Set values for columns with row[i] = xy
dt.Rows.Add(row);
}
datagridview.DataSource = dt;
答案 1 :(得分:0)
您需要创建一个DataTable
,然后将其绑定到网格视图。然后将行和列添加到其中,就像Marc所说:
https://stackoverflow.com/a/35604744/5882760
原因是,网格视图实例的列仅包含有关如何显示附加DataTable
数据的信息。
它们包含有关要显示的columbs的信息,按什么顺序等等。
答案 2 :(得分:0)
尝试下面的代码,您可以向dataGridViews添加行,而无需任何数据源或数据表。
dataGridView1.AllowUserToAddRows = true;
dtaGridView1 row = (DataGridViewRow)dataGridView1.Rows[0].Clone();
row.Cells[0].Value = "Your cell 0 Data";
row.Cells[1].Value = "Your cell 1 Data";
row.Cells[2].Value = "Your cell 2 Data";
………….
row.Cells[n].Value = "Your cell n Data";
dataGridView1.Rows.Add(row);