【发布时间】:2012-04-11 16:37:47
【问题描述】:
我试图模仿 ListView 和其他控件处理 SelectedItems 集合的方式。我有一个包含项目集合的类,每个项目都有一个 Selected 属性。
我想模仿一个智能行为,即 Item 可以更改其自己的 Selected 属性,这样做会在父类中引发 SelectedItemsChanged 事件,并且 SelectedItems 集合现在应该反映更改。
我正在尝试实现一个 SelectedItemsCollection 类,它不包含内部列表,而是检查主 Items 列表中每个项目的 Selected 状态。这样它就不需要不断更新和与主列表同步。
我正在查看 ListView.SelectedListViewItemCollection 的元数据,它有以下声明:
public class SelectedListViewItemCollection : IList, ICollection, IEnumerable
它没有实现Add、Remove、RemoveAt等,这不违反IList接口的使用规则吗?如果不实现它们,我就无法编译。这只是元数据创建方式的一个小故障吗?
我应该如何模拟这个功能?
【问题讨论】:
标签: c# winforms interface .net-2.0