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