集合中的项目更改时如何通知 DataGrid?
How DataGrid is notified when item in the collection is changed?
我有两个 DataGrid 绑定到我的 ViewModel 中的同一个 ObservableCollection 属性。
当我 编辑 一个 DataGrid 中的现有行时,另一行在提交行后得到更新。
但它是如何工作的? NotifyCollectionChanged 事件不会在基础 ObservableCollection 上引发。我已经通过订阅活动查看了。
在这种情况下,您修改的是集合的项目(实体)的属性,而不是集合本身。
因此,不会引发 CollectionChanged 事件。
要更新实体中的属性,必须在其中实现 INotifyPropertyChanged。
但是,如果属性的更改仅通过绑定发生,那么即使这样也没有必要。
绑定在其工作中使用 PropertyDescriptor 和其他类型的反射。
这允许绑定“知道”属性 已被另一个绑定更改。
如果你会说俄语,请阅读我的文章:https://www.cyberforum.ru/wpf-silverlight/thread2650880.html
我有两个 DataGrid 绑定到我的 ViewModel 中的同一个 ObservableCollection 属性。 当我 编辑 一个 DataGrid 中的现有行时,另一行在提交行后得到更新。
但它是如何工作的? NotifyCollectionChanged 事件不会在基础 ObservableCollection 上引发。我已经通过订阅活动查看了。
在这种情况下,您修改的是集合的项目(实体)的属性,而不是集合本身。
因此,不会引发 CollectionChanged 事件。
要更新实体中的属性,必须在其中实现 INotifyPropertyChanged。
但是,如果属性的更改仅通过绑定发生,那么即使这样也没有必要。
绑定在其工作中使用 PropertyDescriptor 和其他类型的反射。
这允许绑定“知道”属性 已被另一个绑定更改。
如果你会说俄语,请阅读我的文章:https://www.cyberforum.ru/wpf-silverlight/thread2650880.html