【发布时间】:2010-11-23 23:33:32
【问题描述】:
我有一个类的 BindingList 设置为 BindingSource 的 DataSource 属性,而后者又设置为 DataGridView 的 DataSource 属性。
1。 据我了解,对列表的任何添加都会触发 ListChanged 事件,该事件将通过 BindingSource 传播,然后传播到 DataGridView,DataGridView 将自行更新以显示更改。这将发生,因为事件已自动连接。 (是吗?)
当所有工作都在 UI 线程上完成时,这一切都很好,但是当从非 UI 线程创建和更改列表时,最终会在更新网格时发生跨线程异常。我可以理解为什么会发生这种情况,但不知道如何解决它......
2。 我很难理解的是,我应该在哪里最好地拦截 ListChanged 事件以尝试将事物编组到 UI 线程上?我猜我需要以某种方式引用 UI 线程来帮助做到这一点?
我已经阅读了很多关于此的帖子/文章,但我很苦恼,因为我不完全了解这里的工作机制。
一旦它们在列表中,我将永远不会更改任何项目,只会添加它们,并最初清除列表。
(我使用的是 .NET 2.0)
【问题讨论】:
标签: c# .net winforms data-binding datagridview