我有一个对象列表,我希望每秒重新绑定DataGridView。我尝试了很多东西,bindingsource,BindingList和INotifyPropertyChanged接口。当你的代码中有静态集合时它们工作得很好,但是我需要从数据库更新数据源,这样我就必须迭代每个对象并检查它是新的还是删除并更新BindingList,但它是解决方案。我喜欢每隔一段时间写这样的文字:
BindingListObeject = new BindingList<MyObject>(ListOfMyObjects);
或
BindingListObeject.Clear();
//in loop
BindingListObeject.Add(new_object);
DataGridView将具有滚动功能,并且必须在重新绑定数据源后选择单元格。并且网格也不应该闪烁。
我该如何管理?我使用EF来获取所需的对象列表。
答案 0 :(得分:1)
使用CollectionChange事件
尝试ObservableCollection()或任何其他集合并且不要做像 myCollection = ...任何事情...... 这样的事情,即使用myCollection的新句柄创建新对象,一段时间你的网格仍然绑定到旧句柄。只需更改集合,不要续订。