我有两个DataGridViews,一个是BindingSource的数据绑定,另一个是DataGridView只有一行而且没有绑定。
在第二个DataGridView中,用户可以填写值,并通过“添加”按钮将值添加到第一个DataGridView中。
但现在我不知道如何将这个新行(记录)添加到第一个DataGridView。最好的办法是,我想将这个新行添加到DataGridView 1的bindingSource中?
但我该怎么做呢。
有人能帮助我吗?我需要C#中的代码 Thx已经。
答案 0 :(得分:2)
这是非常典型的,当你问一个问题时,你没有得到答案,只有其他“为什么”的问题。我的问题非常明确,但为什么我使用这个而不是......
所以它花了我一些时间,但最后找到我自己的答案,使用下面的内容: 其中bs = BindingSource和RowArray来自第二个网格的记录。
((DataTable)(bs.DataSource)).Rows.Add(RowArray);
答案 1 :(得分:0)
为什么不设置AllowUserToAddRows = True
并仅使用一个DataGridView?在这种情况下,您不必将行添加到DataGridView。
答案 2 :(得分:0)
为什么不将数据存储在ObservableCollection<Type>
中?将您的DataGridView1添加到该词典中。如果然后在DataGridView2中添加了一条新记录,只需向该ObservableCollection添加一个新条目即可。 “By Magic”将在DataGridView1中显示。 “魔术”是由ObservableCollection实现并由DataGridView使用的可观察模式。
答案 3 :(得分:0)
您可以将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"));