0

我有一个实现 IList 的集合对象。在集合中,我使用了一个列表来收集项目。在 PropertyGrid 内部(在运行时),它正确绑定并打开集合编辑器。我可以编辑,我可以正确添加项目,当它们在集合类中使用时我可以捕获这些方法。

但是,如果您尝试删除任何项目,它们会从集合中删除,但我的集合中似乎没有使用 IList.Remove 或 IList.RemoveAt。删除的项目也意味着从数据库中删除,这是我在 Remove 方法中实现的行为。

我还从 remove 方法中删除了所有逻辑,并将它们留给 throw new NotImplmented(),而这些根本不会被触发!

我也有一个由自己的 CollectionEditor 实现,但仍然看不到挂钩到我的对象的方法。

那么,我应该在哪里寻找相关的方法呢?我是否也需要更改我的物品的行为?

4

2 回答 2

0

集合编辑器不使用RemoveRemoveAt。相反,当用户按下 OK 按钮时,它会调用IList.Clear方法,然后调用IList.Add以添加集合将包含的所有项目。并不是说它适用于IList的非通用版本。

于 2009-01-27T16:26:27.587 回答
0

好吧,老鼠!

在我的 CollectionEditor 中,有没有办法获取实际的收藏?我想我会得到集合,然后在按下 OK 后进行比较,然后从那里删除记录。

失败了,把矩阵屏保掸掉,挖出一本好书,告诉大家它正在编译。

于 2009-01-27T17:21:08.177 回答