【问题标题】:Databinding issue with class that is asynchronously updated异步更新的类的数据绑定问题
【发布时间】:2009-08-19 07:41:47
【问题描述】:

当我将 BindingList<ProcessDataItem> 绑定到 ComboBox 时,会抛出 InvalidOperationException 说,枚举的集合已更改。当对应的测量值发生变化时,ProcessDataItem 的实例会永久接收更新。该类实现INotifyPropertyChanged 以通知其容器这些更改。这似乎导致了问题。 我很惊讶有这个问题,因为该系列仍未受到影响。没有添加或删除任何内容。只有价值观会改变。我该如何解决这个问题?

编辑: BindingList.ListChanged 事件的文档说:

在列表或列表中的项目更改时发生。

这似乎导致了我的问题。我是否必须创建一个自己的容器类来在枚举进行时抑制值更改事件?

【问题讨论】:

  • 另一个需要担心的问题是,这些更改事件可能来自您的后台线程,但被 GUI 控件使用,并且与 GUI 控件的交互只能在 GUI 线程上完成。因此,任何引发 GUI 使用的事件的对象都只能在 GUI 线程上进行修改。

标签: .net data-binding events


【解决方案1】:

我终于不得不在ProcessDataItem 类中解决同步问题,而不是在容器级别。现在从 GUI 线程调用 BindingList.ListChanged 事件。 KeeperOfTheSoul 的评论完全正确。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-16
    • 2014-12-02
    • 1970-01-01
    • 1970-01-01
    • 2011-07-24
    • 2020-05-12
    • 1970-01-01
    相关资源
    最近更新 更多