我正在使用属性网格编写名称/值对的应用程序。 我的类文件中的一些属性是ListDictionary集合。在那儿 我可以在属性声明中应用的Editor属性 集合编辑器在运行时工作?如果没有,是否可以继承 ComponentModel.Design.CollectionEditor在运行时使用?我需要能够添加, 删除和编辑集合值。 非常感谢, 特里

有帮助吗?

解决方案

我认为本文解释了您的需求:如何编辑和保留集合CollectionEditor

其他提示

来自codeproject文章[ http://www.codeproject.com /KB/cs/dzcollectioneditor.aspx][1]

  

有三个要求a   收集应该满足   成功坚持了   CollectionEditor:

     
      
  1. 首先,集合必须实现IList接口   (继承自   System.Collections.CollectionBase是   在大多数情况下,最好的选择)。
  2.   
  3. 其次,它必须具有Indexer(VB.NET中的Item)属性。的类型   这个属性是由   CollectionEditor来确定   默认的实例类型   将添加到该集合。

         

    为了更好地理解其工作原理,请查看GetItemType()   的功能   CustomCollectionEditorForm:

         

    受保护的虚拟类型GetItemType(IList coll)     {         PropertyInfo pi = coll.GetType()。GetProperty(" Item",                                                new Type [] {typeof(int)});         返回pi.PropertyType     }

  4.   
  5. 第三,集合类必须实现以下一个或两个   方法:添加和AddRange。虽然   IList接口有一个Add成员和   CollectionBase实现了IList,你   仍然要实现一个Add方法   对于你的收藏,鉴于此   CollectionBase声明了一个显式的   成员实施IList’ s   添加会员。设计师序列化   根据什么收集   你已经实施的方法。如果你   已经实现了两者,AddRange是   优选的。

  6.   

在本文中,您将找到在属性网格上实现集合所需的一切

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top