如何向未绑定的DataGridView添加行?

San*_*099 2 c# datagridview

我有一个DataGridViewC#,我想以编程方式添加行.没有绑定到网格的数据但是当我调用dataGrid.Rows.Add();它时会抛出一个数据System.InvalidOperationException.

我浏览了整个互联网,我发现这个问题对于有数据绑定的人来说.我希望从代码中完全控制网格.

有人可以帮我这个吗?

不确定它是否有所作为,但我使用.Net framework 3.5.

Dav*_*haw 6

假设您已经使用设计器或代码创建了列,您可以执行以下操作:

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)