我不确定使用CollectionBase类是否可行。我想知道有人在访问CollectionBase类中的项目时。
最终目标是创建一个“VirtualMode”(类似于DataGridView控件),它允许我检查并验证在用户获取之前发出的数据。
那么会发生什么呢?他们可以创建一个20个对象的集合,在内部我们修改IList以包含20个空对象,然后当他们尝试读取一个项目时,如果它是null,我们转到外部数据来源并在那时阅读。然后我们用read类替换现有的null对象,下次他们尝试访问它时,它们会获得缓存版本。
输入后输出。我想知道OnValidate是否适合这样做。
非常感谢任何协助。
Trevor Watson
答案 0 :(得分:1)
使用CollectionBase
是不可能的。 OnValidate()
仅在OnInsert()
,OnRemove()
和OnSet()
之前调用。
您可以继承ArrayList
并覆盖索引器属性(ArrayList.Item
)。
答案 1 :(得分:0)
看起来您正在寻找虚拟化集合。 CodeProject上的This article有一个很好的实现(它用于WPF中的数据绑定,但它可能在另一个上下文中使用)