收集更改(添加或删除)时触发事件

Ash*_*sha 11 c# events

我有一个包含列表的类:

public class a
{
private List<MyType> _Children;
public Children
{
get {return(_Children);}
set {_Children = value ;}
}
}
Run Code Online (Sandbox Code Playgroud)

我希望创建一个事件并在我的列表(此处为_Children)更改时触发该事件,例如,项目已添加到其中或从中删除或已清除.

谢谢

Ree*_*sey 20

将您的列表更改为ObservableCollection<T>.它实现了INotifyCollectionChanged,因此您可以订阅更改它的事件.

BindingList<T>如果需要完整列表语义,另一个选择是使用.

  • 关于ObservableCollection要记住的一件事是,如果你试图从你创建它的线程以外的线程(无论你是否锁定它)上添加一个元素,它将抛出一个异常. (9认同)