添加一个DataGridViewRow到一个BindingSource

本文关键字:一个 BindingSource DataGridViewRow 添加 | 更新日期: 2023-09-27 18:11:51

我有两个DataGridView,一个数据绑定由一个BindingSource和第二个DataGridView只有一行,是不绑定。

在第二个DataGridView中,用户可以填写值,并通过添加按钮将值添加到第一个DataGridView中。

但是现在我不知道我如何添加这个新的行(记录)到第一个DataGridView。我认为最好的办法是将这个新行添加到datagridview1的bindingSource ?

但是我该怎么做呢?

有人能帮我吗?我需要的代码在c#谢谢了。

添加一个DataGridViewRow到一个BindingSource

这是很典型的,当你问一个问题,你没有得到答案,只有其他"为什么"的问题。我的问题很清楚,但为什么我用这个而不是那个.....

所以它花了我一些时间,但最终找到了我自己的答案,使用以下:其中bs = BindingSource和RowArray从第二个网格的记录。

((DataTable)(bs.DataSource)).Rows.Add(RowArray);

您可以对业务对象使用BindingList。正如我在MSDN中看到的,它在。net v2.0中得到了支持。你需要做的:

//Create list of products
BindingList<Product> myList = new BindingList<Product>();
//set datagridview datasource
dataGridView.DataSource = myList;
//add new product, named Cookie, to list ant boom you'll see it in your datagridview
myList.Add(new Product("Cookie"));

为什么不设置AllowUserToAddRows = True并只使用一个DataGridView?在这种情况下,您不必考虑将行添加到DataGridView。

为什么不将数据存储在ObservableCollection<Type>中呢?将你的DataGridView1绑定到那个字典。如果在DataGridView2中添加了一条新记录,只需向该ObservableCollection添加一个新条目。"通过魔术",它将显示在DataGridView1中。"The Magic"是由ObservableCollection实现的可观察模式,由DataGridView使用。