我有一个包含对象列表的类。当列表被修改时,在类中运行一些代码的最佳方式是什么?
class MyManagerClass
{
ArrayList list = new ArrayList(); // will likely be a different collection class
private OnItemAddedToList(object o)
{
// how to call this?
}
private OnItemRemovedFromList(object o)
{
// how to call this?
}
}
最佳答案
如果您正在编写自定义集合,您可以实现 INotifyCollectionChanged
或 INotifyPropertyChanged
接口(interface)。它们添加了您可以订阅的事件,当集合数据以某种方式更改时通知监听器。
这样做您可以在您的集合之外订阅代码中的事件。
或者您可以使用 ObservableCollection<T>
实现这两个接口(interface)的类。 INotifyCollectionChanged
接口(interface)ObservableCollection<T>
仅适用于 .Net Framework 3.0 及更高版本。
在 .Net Framework 2.0 上,您可以使用 IBindingList
接口(interface)以获得相同的功能,但实现起来比 INotifyCollectionChanged
更复杂3.0 中的界面
关于.net - 修改集合时运行代码(添加或删除项目),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/371133/