当列表有新项目时引发事件?

时间:2014-02-05 15:16:41

标签: c# list events

我编写了一个显示项目列表的控件(在本例中只是字符串)。我给开发人员一个项目列表,他可以添加和删除项目(参见下面的代码)。我希望有一种方法可以在添加新项目时收到通知。因此,作为反应,控制可以更新。

private List<string> items = new List<string>();

public List<string> Items
{ get { return items; } }

我该怎么做? List<...>没有任何事件。我该怎么办?

2 个答案:

答案 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
};