我有一个 ObservableCollection,这个集合有 2 个项目(模型),模型有 Value 作为属性。
集合有一个事件 CollectionChanged,它假设在更改项目时触发,所以我希望看到这个事件在模型值设置时触发,但我不知道应该如何构建模型来触发该事件?
我知道 Model 可以有一个事件,并且在添加 Model 时可以为该事件分配一个处理程序,但我想知道 CollectionChanged 如何更改集合中的项目?
我有一个 ObservableCollection,这个集合有 2 个项目(模型),模型有 Value 作为属性。
集合有一个事件 CollectionChanged,它假设在更改项目时触发,所以我希望看到这个事件在模型值设置时触发,但我不知道应该如何构建模型来触发该事件?
我知道 Model 可以有一个事件,并且在添加 Model 时可以为该事件分配一个处理程序,但我想知道 CollectionChanged 如何更改集合中的项目?
CollectionChanged
仅当模型替换您集合中的另一个模型时才会引发。对已经在集合中的模型的属性更改不会引发它。
您将需要处理INotifyPropertyChanged.PropertyChanged
您的模型必须公开的事件。
如果元素中的属性发生更改,它不会触发,只有当您将新的“模型”项分配给集合的索引时。
如果您希望 WPF 在您更改模型类中的属性值时更新,您需要使模型实例实现INotifyPropertyChanged
.
hack 是将新元素添加到集合中并立即将其删除。这将引发 collectionchanged 事件。