Editor de colecciones en tiempo de ejecución
-
03-07-2019 - |
Pregunta
Estoy trabajando en una aplicación para editar pares de nombre / valor usando una cuadrícula de propiedades. Algunas de las propiedades en mi archivo de clase son colecciones ListDictionary. Esta ahí un atributo Editor que puedo aplicar en la declaración de propiedad que hará que el ¿El editor de colecciones trabaja en tiempo de ejecución? Si no, ¿es posible heredar de ComponentModel.Design.CollectionEditor para uso en tiempo de ejecución? Necesito poder agregar, borrar y editar los valores de colección. Muchas gracias, Terry
Solución
Creo que este artículo explica lo que necesitas: Cómo editar y persistir colecciones con Editor de colecciones
Otros consejos
del artículo de codeproject [ http://www.codeproject.com /KB/cs/dzcollectioneditor.aspx??1]
Hay tres requisitos que un colección debe reunirse para ser persistido con éxito con el Editor de colecciones:
- Primero, la colección debe implementar la interfaz IList (heredando de System.Collections.CollectionBase es en la mayoría de los casos, la mejor opción).
Segundo, debe tener una propiedad de Indizador (Artículo en VB.NET). El tipo de esta propiedad es utilizada por el CollectionEditor para determinar la tipo predeterminado de las instancias que se agregará a la colección.
Para comprender mejor cómo funciona esto, eche un vistazo a GetItemType () función de la CustomCollectionEditorForm:
tipo virtual protegido GetItemType (IList coll) { PropertyInfo pi = coll.GetType (). GetProperty (" Artículo " ;, nuevo Tipo [] {typeof (int)}); devuelve pi.PropertyType }
Tercero, la clase de colección debe implementar uno o ambos de los siguientes métodos: Add y AddRange. A pesar de que La interfaz de IList tiene un miembro Agregar y CollectionBase implementa IList, tu Todavía hay que implementar un método Add para su colección, dado que CollectionBase declara una explícita Implementación miembro de la IList & # 8217; s Añadir miembro. El diseñador serializa la colección según lo que Método que has implementado. Si tu han implementado tanto, el AddRange es preferido.
En este artículo encontrará todo lo que necesita para implementar su colección en la cuadrícula de propiedades