我有一个DataGridViewC#,我想以编程方式添加行.没有绑定到网格的数据但是当我调用dataGrid.Rows.Add();它时会抛出一个数据System.InvalidOperationException.
我浏览了整个互联网,我发现这个问题对于有数据绑定的人来说.我希望从代码中完全控制网格.
有人可以帮我这个吗?
不确定它是否有所作为,但我使用.Net framework 3.5.
假设您已经使用设计器或代码创建了列,您可以执行以下操作:
var row = (DataGridViewRow)myDataGridView.RowTemplate.Clone();
row.CreateCells(myDataGridView, "I'm Cell 1", "I'm Cell 2", "etc.");
myDataGridView.Rows.Add(row);
Run Code Online (Sandbox Code Playgroud)
理想情况下,如果要添加许多行,则可以预先创建一个行数组,然后调用它们AddRange(rows);.
例:
void PopulateGrid()
{
//Consider Suspend-Resume Layout, YMMV.
var rows = myData.Select(data => CreateRow(data)).ToArray();
myDataGridView.Rows.AddRange(rows);
}
DataGridViewRow CreateRow(MyData data)
{
var row = (DataGridViewRow)myDataGridView.RowTemplate.Clone();
row.CreateCells(myDataGridView, data.Text, data.Date, date.Value);
return row;
}
Run Code Online (Sandbox Code Playgroud)