【发布时间】:2009-08-19 07:41:47
【问题描述】:
当我将 BindingList<ProcessDataItem> 绑定到 ComboBox 时,会抛出 InvalidOperationException 说,枚举的集合已更改。当对应的测量值发生变化时,ProcessDataItem 的实例会永久接收更新。该类实现INotifyPropertyChanged 以通知其容器这些更改。这似乎导致了问题。
我很惊讶有这个问题,因为该系列仍未受到影响。没有添加或删除任何内容。只有价值观会改变。我该如何解决这个问题?
编辑:
BindingList.ListChanged 事件的文档说:
在列表或列表中的项目更改时发生。
这似乎导致了我的问题。我是否必须创建一个自己的容器类来在枚举进行时抑制值更改事件?
【问题讨论】:
-
另一个需要担心的问题是,这些更改事件可能来自您的后台线程,但被 GUI 控件使用,并且与 GUI 控件的交互只能在 GUI 线程上完成。因此,任何引发 GUI 使用的事件的对象都只能在 GUI 线程上进行修改。
标签: .net data-binding events