微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

更改集合中的项目时如何通知 DataGrid?

如何解决更改集合中的项目时如何通知 DataGrid?

我有两个 DataGrid 绑定到我的 viewmodel 中的同一个 ObservableCollection 属性。 当我编辑一个 DataGrid 中的现有行时,另一行在提交行后更新。

但它是如何工作的? NotifyCollectionChanged 事件不会在基础 ObservableCollection 上引发。我已通过订阅该活动进行了检查。

解决方法

在这种情况下,您正在修改集合的项目(实体)的属性,而不是集合本身。
因此,不会引发 CollectionChanged 事件。
要更新实体中的属性,必须在其中实现 INotifyPropertyChanged。
但是如果属性的改变只通过绑定发生,那么即使这样也没有必要。
绑定在其工作中使用 PropertyDescriptor 和其他类型的反射。
这允许绑定“知道”一个属性已被另一个绑定更改。

如果您说俄语,请阅读我的文章:https://www.cyberforum.ru/wpf-silverlight/thread2650880.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。