我正在处理BindingList,并且我想要更改它的默认行为,以便刷新其绑定到的DataGridView,这是在手动引发事件时完成的。在我的情况下,我每隔1秒更新BindingList与foreach循环中的数据,并且在所有内容都是最新的之后,我想刷新DataGridView。我该怎么办?更改BindingList的默认行为
1
A
回答
1
望着MSDN文档,它看起来像你可以从BindingList<T>
派生并重写BindingList<T>.SupportsChangeNotificationCore
关闭列表变更通知:
public class MyBindingList<T> : BindingList<T>
{
protected override bool SupportsChangeNotificationCore
{
get { return false; }
}
}
,然后你应该能够调用ResetBindings()
当你需要更新你的DataGridView的。
但是,如果通过“更新的BindingList”,你刚才的意思是添加/删除项目,那么你可以设置BindingList<T>.RaiseListChangedEvents
为false,以关闭列表更改通知:
var bindingList = new BindingList<string>();
bindingList.RaiseListChangedEvents = false; // turn off notifications
bindingList.Add("foo"); // no notifications raised
...
bindingList.RaiseListChangedEvents = true; // turn on notifications
bindingList.ResetBindings(); // raise notifications
0
您可以:
- 使用BindingSource到DataGridView绑定包住的BindingList
- 到的BindingSource
- 设置BindingSource.RaiseListChangedEvents = false,所以ListChanged事件不上升(在数据网格不听变化)
- 更新列表
- 复位RaiseListChangedEvents并呼吁BindingSource.ResetBindings(false)发信号给所有绑定组件刷新数据
平时你也可以使用BindingSource.SuspendBinding以防止改变,并ResumeBinding恢复,但DataGridView的是行不通的,只能用简单的控制像文本框(见remarks on msdn)
相关问题
- 1. 更改默认行为5.4
- 2. 如何更改ThickBox的默认行为?
- 3. 更改默认onListItemClick行为的ListView
- 4. 更改默认帮助键行为
- 5. 更改php-interbase默认事务行为
- 6. phpMyAdmin:更改显示的默认行数?
- 7. 更改网格中的默认行数
- 8. 更改默认库
- 9. 更改Apache的默认页面为PHP
- 10. EXTJS更改GridPanel行选择的默认行为
- 11. 更改插件的默认
- 12. 更改默认的build.gradle
- 13. 更改列的默认值
- 14. 更改EnableViewState的默认值
- 15. UIDatePicker更改默认选定行
- 16. emacs更改默认行结束
- 17. 如何更改空的Jbuilder partials的默认行为?
- 18. 更改默认validation_client_name为“ORGNAME验证器”
- 19. CAKEPHP - 将默认路径更改为webroot
- 20. 将UIWebView默认颜色更改为UIImage
- 21. UIButton标题更改为默认
- 22. 将mysql默认引擎更改为innodb
- 23. 更改Windows Phone 7中的默认滑块行为Silverlight
- 24. 如何更改Rack :: Offline的默认行为
- 25. 更改挂毯中的默认会话行为
- 26. 如何更改Iron的默认404行为?
- 27. 更改默认视图引擎的视图搜索行为
- 28. 如何更改机架离线的默认行为
- 29. 如何更改jtable中的默认停止编辑行为
- 30. 更改货币格式的默认区域设置行为
重写'的BindingList .SupportsChangeNotificationCor'并关闭丽st改变通知,但'ResetBinding()'不起作用。 –
user1816806
2014-09-10 21:35:33
对不起,是的,我刚刚创建了一个测试项目,看起来您需要在调用'ResetBindings'之前设置'RaiseListChangedEvents = true'。编辑我的答案。 – 2014-09-10 21:54:32