更新DataGridView控件数据源C#Win Forms

时间:2016-11-20 12:56:33

标签: c# winforms bindingsource bindinglist

我有一个对象列表,我希望每秒重新绑定DataGridView。我尝试了很多东西,bindingsource,BindingList和INotifyPropertyChanged接口。当你的代码中有静态集合时它们工作得很好,但是我需要从数据库更新数据源,这样我就必须迭代每个对象并检查它是新的还是删除并更新BindingList,但它是解决方案。我喜欢每隔一段时间写这样的文字:

BindingListObeject = new BindingList<MyObject>(ListOfMyObjects);

BindingListObeject.Clear();
//in loop
BindingListObeject.Add(new_object);

DataGridView将具有滚动功能,并且必须在重新绑定数据源后选择单元格。并且网格也不应该闪烁。

我该如何管理?我使用EF来获取所需的对象列表。

1 个答案:

答案 0 :(得分:1)

使用CollectionChange事件

尝试ObservableCollection()或任何其他集合

并且不要做像 myCollection = ...任何事情...... 这样的事情,即使用myCollection的新句柄创建新对象,一段时间你的网格仍然绑定到旧句柄。只需更改集合,不要续订。