实现项目集合的最佳方式是:
更新
我正在考虑这样的事情: 系列:
["Name", string:"John Doe"]
["Age", int:"32"]
["Profiles", List<Profiles>:"list of profiles"]
我将能够添加这样的新项目:
Collection.Add("NewItem", value);
然后改变它:
Collection["NewItem"] = newValue;
将触发事件:
NotifyPropertyChanged("NewItem");
因此,我将能够订阅该集合中的每一项,并拥有不同的事件处理程序。
感谢。
答案 0 :(得分:1)
您的描述所需要的是我(和其他人)称之为ObservableDictionary
的内容,Google会为您提供一些实施建议。 .NET中没有内置这样的类,但是有很多tuturials和第三方实现。
我这样说的原因:
INotifyCollectionChanged
,而非INotifyPropertyChanged
。当您添加项目或致电Collection["NewItem"] = newValue
时,您应该触发的事件是CollectionChanged
,因为它不是已更改的列表的属性 - 它是内容 ObservableCollection
类。另外,您说“我将能够订阅该集合中的每个单独项目”,这表明您可能希望将字典中的“值”限制为{{ 1}}但是,我建议你应该创建INotifyPropertyChanged
作为泛型类,然后你可以选择让字典中的值成为你需要的任何类型。
答案 1 :(得分:0)
如果必须是列表,请使用
ObservableCollection<INotifyPropertyChanged>