Wpf datagrid中未反映的可观察集合项的更改

Wpf datagrid中未反映的可观察集合项的更改,wpf,mvvm,observablecollection,Wpf,Mvvm,Observablecollection,我使用可观察的集合作为WPF中datagrid的数据源 我的datagrid中大约有20列 如果我对特定单元格的值进行任何更改,我将无法在UI中看到相同的值。单元格显示相同的旧值。如果我单击该单元格,将显示最新的值 我将用一个例子来解释这一点。 假设我在一个可观察的集合中有两个属性名称和年龄。 如果我在viewmodel的可观察集合中添加了4或5列,则会在UI中显示相同的内容。如果我在viewmodel的特定行中更改年龄值,则最新值在网格中不可见。单击该单元格时,会显示最新值 有人能告诉我们需要

我使用可观察的集合作为WPF中datagrid的数据源

我的datagrid中大约有20列

如果我对特定单元格的值进行任何更改,我将无法在UI中看到相同的值。单元格显示相同的旧值。如果我单击该单元格,将显示最新的值

我将用一个例子来解释这一点。 假设我在一个可观察的集合中有两个属性名称和年龄。 如果我在viewmodel的可观察集合中添加了4或5列,则会在UI中显示相同的内容。如果我在viewmodel的特定行中更改年龄值,则最新值在网格中不可见。单击该单元格时,会显示最新值


有人能告诉我们需要做什么才能在UI中反映更改吗?

ObservableCollection继承INotifyCollectionChanged,以便在添加或删除元素时更新视图,INotifyPropertyChanged,以便在刷新(设置)整个列表时更新视图

但是,一旦您在集合容器(如数据网格)中拥有来自该可观察集合的项,该行的数据上下文将成为源对象(即,包含在可观察集合中的对象)。如果此源对象未实现INotifyPropertyChanged,则对其数据的更改将不会传播到UI


基本上,您的ObservableCollection正在聚合的任何对象都需要实现INotifyPropertyChanged。

底层源类是否实现了
INotifyPropertyChanged
接口?