如何更新ObservableCollection的现有元素?

我有一个ObservableCollection实例绑定到WPF列表框,其中包含两个独立的数据模板(一个用于显示,一个用于编辑)。 用于编辑的数据模板在文本框上具有单向绑定,并具有“保存”按钮。

我需要做哪些更改才能按下“保存”按钮(将列表项置于编辑模式后),值I更改文本框以替换ObservableCollection(和显示)中的值?

集合中的项应该是实现INotifyPropertyChanged接口的类型。 这样,您的列表框将通知您单个项目对象中的属性值已更改。 仅当集合更改(添加,删除项目等)时,ObservableCollection才会引发CollectionChanged事件

引用来自关于ObservableCollection的MSDN库文章

要完全支持将数据值从绑定源对象传输到绑定目标,集合中支持可绑定属性的每个对象都必须实现适当的属性更改通知机制,例如INotifyPropertyChanged接口。

要在绑定客户端和数据源之间的绑定中发生更改通知,您的绑定类型应该是:

  • 实现INotifyPropertyChanged接口(首选)。
  • 为绑定类型的每个属性提供更改事件。

不要两者都做。

来源: MSDN:INotifyPropertyChanged接口

我用BindingList 类解决了类似的问题。

它在集合和单个项目更改时都触发了ListChanged事件。

在.Net 3.5中引入