当我点击按钮时,我需要动态地向DataGridView
添加行。我已经阅读了很多相关帖子,但是它们都使用DataTable
作为DataSource
。在我的情况下,DataSource
是一个List
,而行是自定义对象(Product)。请参见以下代码:
List<Product> products =
(List<Product>)repository.Session.CreateCriteria<Product>().List<Product>();
ProductsDataGrid.DataSource = products;
AllowUserToAddRow
为真。那么我如何动态添加一行?
根据Nasmi Sabeer的回答,据我所理解,我已经尝试了:
private void addProductBtn_Click(object sender, EventArgs e)
{
List<Product> products = (List<Product>) ProductsDataGrid.DataSource;
products.Add(new Product());
ProductsDataGrid.DataSource = products;
ProductsDataGrid.Refresh();
}
但是它不起作用。
List<Product>
不起作用呢? 顺便说一下,Refresh()
不是必要的。 - Cristhian BoujonBindingList
或ObservableCollection
,具体取决于您是使用WinForms还是WPF。BindingSource是错误的做法。BindingSource用于非内存实现,例如通过OData。 - Aron