我最近买了一本名为“C#编程语言”的第4版。在页49上,引用了具有已更改事件的List,可以将其绑定为事件示例。 试图重现这一点,但结果却对此有些不满: -
List<string> names = new List<string>();
names.Changed+= new EventHandler(ListChanged);
所以它继续...... 我错过了什么或列表没有更改事件吗?
答案 0 :(得分:6)
不,List<T>
没有这样的事件,你没有遗漏任何东西。您可以结帐ObservableCollection<T>
,其中包含您可以订阅的CollectionChanged
活动。它广泛用于WPF和Silverlight中以实现MVVM模式。
答案 1 :(得分:5)
不,请看ObservableCollection。
答案 2 :(得分:1)
确实如此。但是,第49页上引用List<T>
事件的Changed
实际上是在第40页引入的。不是 List<T>
是基类的一部分图书馆。要使用本书中包含的版本,您必须自己输入(或者本书附带CD,或者您可以下载它),并且您的代码将与使用{{1的任何其他代码不兼容其他人都使用的。
答案 3 :(得分:0)
List<T>
上没有此类事件。也许这本书引用的是System.Collections.ObjectModel.ObservableCollection<T>
?
答案 4 :(得分:0)
您可以使用ObservableCollection,并可以添加命名空间以使用这些
Namespace: System.Collections.ObjectModel
Assembly: WindowsBase (in WindowsBase.dll)