如何告诉某人何时从CollectionBase中读取项目

时间:2011-06-22 22:35:37

标签: c# ilist virtualmode collectionbase

我不确定使用CollectionBase类是否可行。我想知道有人在访问CollectionBase类中的项目时。

最终目标是创建一个“VirtualMode”(类似于DataGridView控件),它允许我检查并验证在用户获取之前发出的数据。

那么会发生什么呢?他们可以创建一个20个对象的集合,在内部我们修改IList以包含20个空对象,然后当他们尝试读取一个项目时,如果它是null,我们转到外部数据来源并在那时阅读。然后我们用read类替换现有的null对象,下次他们尝试访问它时,它们会获得缓存版本。

输入后输出。我想知道OnValidate是否适合这样做。

非常感谢任何协助。

Trevor Watson

2 个答案:

答案 0 :(得分:1)

使用CollectionBase是不可能的。 OnValidate()仅在OnInsert()OnRemove()OnSet()之前调用。

您可以继承ArrayList并覆盖索引器属性(ArrayList.Item)。

答案 1 :(得分:0)

看起来您正在寻找虚拟化集合。 CodeProject上的This article有一个很好的实现(它用于WPF中的数据绑定,但它可能在另一个上下文中使用)