1

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

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

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

打出来之后。我想知道 OnValidate 是否是这样做的正确位置。

任何帮助将不胜感激。

特雷弗·沃森

4

2 回答 2

1

这是不可能的CollectionBaseOnValidate()仅在OnInsert()OnRemove()和之前调用OnSet()

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

于 2011-06-22T22:58:48.393 回答
0

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

于 2011-06-22T22:59:46.990 回答