BindingList ListChanged 事件

发布于 2024-12-03 07:55:09 字数 351 浏览 0 评论 0原文

我正在订阅绑定列表中的 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

月牙弯弯 2024-12-10 07:55:09

如果要替换某个项目,ListChangedEventArgsOldIndex 为 -1,则表示 OldIndexNewIndex 都会更新code> 具有相同的值。

If an item is being replaced the ListChangedEventArgs has an OldIndex of -1, it it is being updated both OldIndex and NewIndex have the same value.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文