ObservableCollection的CollectionChanged事件

时间:2013-01-28 19:29:33

标签: wpf observablecollection

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

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

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

3 个答案:

答案 0 :(得分:3)

仅当模型替换集合中的另一个时,才会引发{p> CollectionChanged。对已经在集合中的模型的属性更改不会引发它。

您需要处理模型必须公开的INotifyPropertyChanged.PropertyChanged事件。

答案 1 :(得分:2)

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

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

答案 2 :(得分:0)

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