我有一个实例ObservableCollection开WPF列表框,与两个单独的数据模板(一个用于显示,一个用于编辑)。该数据模板,用于编辑一样具有约束力的文本,并保存按钮。

什么样的变化做我需要做所以,当我按下保存按钮(后把名单中的项目编辑模式),值更改的文本,以替换价值在ObservableCollection(和所显示的)?

有帮助吗?

解决方案

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

引用来自ObservableCollection的MSDN库文章

  

完全支持传输数据   从绑定源对象到的值   绑定目标,你的每个对象   支持可绑定的集合   属性必须实现   适当的财产变了   通知机制如   INotifyPropertyChanged接口。

其他提示

为更改通知发生在一个结合之间的一个开端和一个数据来源、绑定类型应该:

  • 实施该举 接口(优选的)。
  • 提供一个改变的事件,为每 财产的定型。

不这样做这两者。

资料来源: MSDN:举接口

我使用BindingList解决了类似的问题<!> lt; T <!> gt;类。

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

在.Net 3.5中引入

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top