.net - 修改集合时运行代码(添加或删除项目)

标签 .net collections

我有一个包含对象列表的类。当列表被修改时,在类中运行一些代码的最佳方式是什么?

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?  
    }
}

最佳答案

如果您正在编写自定义集合,您可以实现 INotifyCollectionChangedINotifyPropertyChanged接口(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/

相关文章:

java - 这是在构建器对象中创建空集的最佳方法

java - 如何使用java 8流获取路径长度

c# - 在 WCF 的其他契约(Contract)中将 MessageContract 作为 MessageBodyMember

c# - 应用范围内的 Observable 集合

c# - 确定应用程序的关闭方式

java - 使用比较器根据 ArrayList 对数组进行排序

java - Collections.synchronizedCollection 的 forEach 和 removeIf 中可能存在错误?

c# - 服务中托管的 WCF 的交互式 "screen"

c# - 使用 LinqToSql、交易保存新的或更新?

Python:迭代一组符号