BindingList ListChanged 事件
我正在订阅绑定列表中的 ListChanged 事件。当列表更改(添加/删除项目)时,我将更新内部列表。内部列表包含与原始列表中的项目1-1对应的对象。项目顺序可以不同。
根据文档,当事件被触发时,ListChangedEventArgs.ListChangedType 可以是以下之一:ItemAdded、ItemDeleted、Reset 和 ItemChanged。当列表中的一项发生更改时,ListChangedType 为 ItemChanged,该项要么被另一项替换,要么其属性之一被修改。
如何区分这些情况,以便在列表中的一项被其他项替换时可以重新加载内部列表,但如果是属性更改则不执行任何操作?
有更好的方法来实现这一点吗?
I am subscribing to the ListChanged event in a binding list. When the list changed (item is add/removed), I will update an internal list. The internal list contains objects that are 1-1 corresponding to the items in the original list. The item order can be different.
Based on the document, when the event is fired, the ListChangedEventArgs.ListChangedType can be one of the followings: ItemAdded, ItemDeleted, Reset and ItemChanged. ListChangedType is ItemChanged when an item in the list is changed, either the item is replaced by another one or one of its property is modified.
How can I differentiate these cases so that I can reload the internal list if an item in the list is replaced by a different one, but do nothing if it's the property change?
Is there a better way to accomplish this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果要替换某个项目,
ListChangedEventArgs
的OldIndex
为 -1,则表示OldIndex
和NewIndex
都会更新code> 具有相同的值。If an item is being replaced the
ListChangedEventArgs
has anOldIndex
of -1, it it is being updated bothOldIndex
andNewIndex
have the same value.