我编写了一个显示项目列表的控件(在本例中只是字符串)。我给开发人员一个项目列表,他可以添加和删除项目(参见下面的代码)。我希望有一种方法可以在添加新项目时收到通知。因此,作为反应,控制可以更新。
private List<string> items = new List<string>();
public List<string> Items
{ get { return items; } }
我该怎么做? List<...>
没有任何事件。我该怎么办?
答案 0 :(得分:6)
使用ObservableCollection<string>
代替List
。该类附带内置的变更通知事件支持。
答案 1 :(得分:3)
查看BindingList<T>
和ObservableCollection<T>
。 This answer解释了两者之间的区别。
除了绑定之外,您还可以订阅更改事件,如下所示:
BindingList<T>.ListChanged
:
items.ListChanged += (sender, e) => {
// handle the change notification
};
ObservableCollection<T>.CollectionChanged
:
items.CollectionChanged += (sender, e) => {
// handle the change notification
};