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

Bit*_*lue 2 c# events list

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

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

public List<string> Items
{ get { return items; } }
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点 ?List<...>没有事件.我能做什么 ?

I a*_*ica 8

看看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)


Jon*_*Jon 6

使用ObservableCollection<string>而不是List.该类附带内置的变更通知事件支持.