0

我的班级有一个公共列表字段。我想检测何时有人更改此集合。但是,围绕这个集合编写我自己的 Add/Remove 包装器似乎很浪费。有没有办法通过代表或类似的方式获取有关集合更改的通知?

4

3 回答 3

3

改用您可能会在此处ObservableCollection<T>找到参考。

于 2013-04-14T16:02:19.733 回答
0

您描述的集合已经存在,它被称为ObservableCollection.

它有CollectionChanged事件,所以只需在那里订阅你的事件处理程序,每次从集合中添加或删除项目时我都会被调用..

于 2013-04-14T16:04:09.393 回答
0

改为使用BindingList<T>。它提供了一个ListChanged事件。它也被DataSource许多控件所接受,例如列表框或网格。

正如这个答案中提到的,BindingList提供的远远超过ObservableCollection

如果您想更改列表框中的列表并将对该列表的更改反映到 UI,您可以将 a 设置BindingList<>为列表框的数据源,然后简单地操作列表。列表框将处理该ListChanged事件并显示更改,而无需您自己手动执行。

如果你要在 Winforms 中使用它,你应该使用 BindingList,如果你要在 WPF 应用程序上使用它,那么使用 ObservableCollection。

于 2013-04-14T16:04:44.017 回答