当我将BindingList<ProcessDataItem>
绑定到ComboBox
时,会抛出InvalidOperationException
,说明枚举的集合已更改。 ProcessDataItem
的实例在相应的测量值发生变化时会永久接收更新。该类实现INotifyPropertyChanged
以通知其容器这些更改。这似乎导致了这个问题。
我很惊讶这个问题,因为收集仍然没有改变。没有添加或删除任何内容。只有价值变化。我该如何解决这个问题?
编辑:
BindingList.ListChanged
事件的文档说:
列表或列表中的项目发生更改时发生。
这似乎引起了我的问题。我是否必须创建一个自己的容器类,在枚举正在进行时抑制值更改事件?
答案 0 :(得分:0)
我最终必须解决ProcessDataItem
类中的同步问题,而不是容器级别。现在从GUI线程调用BindingList.ListChanged
事件。 KeeperOfTheSoul对他的评论绝对正确。