【问题标题】:CollectionChanged event of ObservableCollectionObservableCollection 的 CollectionChanged 事件
【发布时间】:2013-01-12 05:47:28
【问题描述】:

我有一个 ObservableCollection,这个集合有 2 个项目(模型),模型有 Value 作为属性。

集合有一个事件 CollectionChanged,它假设在更改项目时触发,所以我希望看到这个事件在模型值设置时触发,但我不知道应该如何构建模型来触发它事件?

我知道 Model 可以有一个事件,并且当添加一个 Model 时,可以为该事件分配一个处理程序,但我想知道 CollectionChanged 如何用于更改集合中的项目?

【问题讨论】:

    标签: wpf observablecollection


    【解决方案1】:

    CollectionChanged 只会在模型替换您收藏中的另一个模型时引发。对已经在集合中的模型的属性更改不会引发它。

    您将需要使用您的模型必须公开的INotifyPropertyChanged.PropertyChanged 事件来处理这些事件。

    【讨论】:

      【解决方案2】:

      如果元素中的属性发生更改,它不会触发,只有在您将新的“模型”项分配给集合的索引时才会触发。

      如果您希望 WPF 在您更改模型类中的属性值时更新,您需要使模型实例实现 INotifyPropertyChanged

      【讨论】:

        【解决方案3】:

        一个技巧是向集合中添加一个新元素并立即将其删除。这将引发 collectionchanged 事件。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-06-06
          • 2016-12-24
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多