我有一个实现IList的集合对象。在集合中,我使用List来收集项目。 在PropertyGrid内部(在运行时),它正确绑定并打开集合编辑器。我可以编辑,我可以正确添加项目,我可以在集合类中使用它们时捕获这些方法。
但是,如果您尝试删除任何项目,它们将从集合中删除,但IList.Remove或IList.RemoveAt似乎都不会从我的集合中使用。删除的项目也应该从数据库中删除,我在Remove方法中实现的行为。
我还从remove方法中删除了所有逻辑,并使用throw new NotImplmented()离开它们,并且这些都不会被触发!
我也有自己的CollectionEditor实现,但仍然看不到挂钩我的对象的方法。
那么,我应该在哪里寻找相关方法?我是否还需要更改项目的行为?
答案 0 :(得分:0)
Collection Editor不使用删除或 RemoveAt 。相反,当用户按下OK按钮时,它会调用 IList.Clear 方法,然后调用 IList.Add 来添加集合将包含的所有项目。并非它适用于 IList 的非通用版本。
答案 1 :(得分:0)
好吧,老鼠!
在我的CollectionEditor里面有没有办法搞定实际的收藏? 我想我会得到这个集合,然后在按下OK后再进行比较,并从那里删除记录。
如果不这样做,请将矩阵屏幕保护程序弄脏,找出一本好书并告诉每个人它正在编译。