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