我编写了一个显示项目列表的控件(在本例中只是字符串).我给开发人员一个项目列表,他可以添加和删除项目(参见下面的代码).我希望有一种方法可以在添加新项目时收到通知.因此,作为反应,控件可以更新.
private List<string> items = new List<string>();
public List<string> Items
{ get { return items; } }
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点 ?List<...>没有事件.我能做什么 ?
看看BindingList<T>和ObservableCollection<T>。这个答案解释了两者之间的区别。
除了绑定之外,您还可以订阅更改事件,如下所示:
BindingList<T>.ListChanged:
items.ListChanged += (sender, e) => {
// handle the change notification
};
Run Code Online (Sandbox Code Playgroud)
ObservableCollection<T>.CollectionChanged:
items.CollectionChanged += (sender, e) => {
// handle the change notification
};
Run Code Online (Sandbox Code Playgroud)