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

标签 c# list events

<分区>

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

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

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

我该怎么做? List<...>没有事件。我能做什么?

最佳答案

看看 BindingList<T> ObservableCollection<T> . This answer解释两者之间的区别。

除了绑定(bind)之外,您还可以像这样订阅更改事件:

BindingList<T>.<a href="http://msdn.microsoft.com/en-us/library/ms132742(v=vs.110).aspx" rel="noreferrer noopener nofollow">ListChanged</a> :

items.ListChanged += (sender, e) => {
    // handle the change notification
};

ObservableCollection<T>.<a href="http://msdn.microsoft.com/en-us/library/ms653375(v=vs.110).aspx" rel="noreferrer noopener nofollow">CollectionChanged</a> :

items.CollectionChanged += (sender, e) => {
    // handle the change notification
};

关于c# - 当列表有新项目时引发事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21581092/

相关文章:

c# - 仅在编辑行完成后才允许添加下一行

c# - 找不到引用 Microsoft.DirectX.AudioVideoPlayback 和 Microsoft.DirectX

java - 如何在java中制作一个排序列表?

Java/开发/输入/事件X

c# - 使用c#在wpf的列表框中选择多个项目

python - 如何将代码块拆分为列表?

r - 在列表上使用 reshape2::melt 时如何指定级别名称?

javascript - 为什么事件没有通过?

c# - Silverlight、DataTemplate、绑定(bind)到点击事件

c# - 应该将同一个连接注入(inject)多个存储库还是在每个调用的方法中打开一个新连接?