13

我有一个绑定到数据源的 datagridview。当我单击编辑按钮或新建按钮时,我必须在 datagridview 中添加一个新行。我尝试了一些代码,但它给了我错误,代码如下

DataGridView grdview = new DataGridView();
grdview.Rows.Add();
grdview.Rows[grdview.Rows.Count - 1].Cells[0].Selected = true;
grdview.BeginEdit(false);

我还尝试将数据源类型转换为数据表,但没有解决方案。

4

3 回答 3

12

看来您正在使用DataSource. DataGridView当此属性用于绑定数据时,您不能直接将行显式添加到 DataGridView。相反,您必须将行直接添加到您的数据源

If you are binding a List

//Assume Student list is bound as Dtaasource
List<Student> student = new List<Student>();

//Add a new student object to the list
student .Add(new Student());

//Reset the Datasource
dataGridView1.DataSource = null;
dataGridView1.DataSource = student;

If you are binding DataTable

DataTable table = new DataTable();

 DataRow newRow = table.NewRow();

// Add the row to the rows collection.
table.Rows.Add(newRow);
于 2013-09-20T11:21:40.780 回答
7

不,如果DataGridView数据绑定到某个数据源,那么您不能添加新的行/列。您将必须创建一个DataTable包含所需列的新数据集(或其他),然后重新绑定DataGridView到该数据集。

我希望这有帮助。

于 2013-09-20T11:07:47.930 回答
6

改为绑定到 a BindingSource,您将保留 NewRow

于 2015-03-27T08:16:17.940 回答