【发布时间】:2011-11-29 14:00:33
【问题描述】:
我有绑定到 Dictionary 集合的 ListView,但是新的项目被添加到集合中,listview 没有更新。这在 WPF 中如何实现?
【问题讨论】:
标签: .net wpf binding collections
我有绑定到 Dictionary 集合的 ListView,但是新的项目被添加到集合中,listview 没有更新。这在 WPF 中如何实现?
【问题讨论】:
标签: .net wpf binding collections
WPF 绑定的双方都应支持INotifyCollectionChanged 接口,以便通知集合更改。 字典不支持它。因此,您可以使用ObservableCollection class(它不提供通过关联键搜索值等功能),或者您可以创建自己的 ObservableDictionary 类,该类实现了IDictionary 和INotifyCollectionChanged 接口
PS:如果您需要绑定 Dictionary 的键和值 - 您必须实现自己的类,如果显示 Keys 或 Values 就足够了 - 只需基于 dictionary.Keys 或 dictionary.Values 创建 ObservableCollection。
有用的链接:
【讨论】:
INotifyPropertyChanged,而是INotifyCollectionChanged,它是由ObservableCollection实现的。见msdn.microsoft.com/en-us/library/…