【问题标题】:ObservableCollection DataGridObservableCollection 数据网格
【发布时间】:2011-01-25 01:55:44
【问题描述】:

我将 ObservableCollection 绑定到 dataGrid itemssource。

observable Collection 的 collectionChangedEvent 仅在我们添加、删除、删除时被调用。但是当我们更新记录时不会触发。

如何也触发更新事件?

【问题讨论】:

    标签: wpf observablecollection wpfdatagrid


    【解决方案1】:

    如果您想在项目更改时收到通知(即您想订阅此事件),那么您对ObservableCollection<T> 不走运,因为此集合仅触发CollectionChangedEvent
    实际上,如果您实现INotifyPropertyChanged,您将看到视图中的项目发生变化(WPF 会自动执行此操作),但如果您需要在项目更改时执行手动操作,则可以使用BindingList<T>

    正是针对这种情况,我推出了自定义BindableCollection<T>,它实现了ObservableCollection<T> 并添加了OnItemChangedEvent。如有必要,我可以提供一些示例代码...

    【讨论】:

    • 我知道你发布这个答案已经十多年了,但我很想看看你的实现。我目前正在努力自己检测 ObservableCollection 元素的变化。
    【解决方案2】:

    集合不知道记录何时被修改。要在发生这种情况时得到通知,记录需要实现INotifyPropertyChanged

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-05
      • 1970-01-01
      • 1970-01-01
      • 2010-11-03
      • 2023-03-07
      • 2013-01-30
      • 2019-11-14
      • 2013-04-15
      相关资源
      最近更新 更多