我有一个ObservableCollection实例绑定到一个带有两个独立数据模板的WPF列表框(一个用于显示,一个用于编辑)。用于编辑的数据模板在文本框上具有单向绑定,并具有“保存”按钮。
我需要进行哪些更改才能按下“保存”按钮(将列表项置于编辑模式后),值I更改文本框以替换ObservableCollection(和显示)中的值?
答案 0 :(得分:9)
集合中的项目应该是实现INotifyPropertyChanged接口的类型。这样,您的列表框将通知您单个项目对象中的属性值已更改。 ObservableCollection仅在集合更改(添加,删除项目等)时引发CollectionChanged事件。
引用来自ObservableCollection的MSDN库文章
完全支持传输数据 从绑定源对象到的值 绑定目标,你的每个对象 支持可绑定的集合 属性必须实现 适当的财产变了 通知机制如 INotifyPropertyChanged接口。
答案 1 :(得分:1)
要在绑定客户端和数据源之间的绑定中发生更改通知,您的绑定类型应该是:
不要两者兼顾。
答案 2 :(得分:1)
我使用BindingList< T>解决了类似的问题。类。
它在集合和单个项目更改时都触发了ListChanged事件。
在.Net 3.5中引入