Parece que no puedo encontrar la respuesta a esto en ninguna parte. Qué editores/convertidores predeterminados están incorporando en el control PropertyGrid de Framework 3.5. De lo contrario, ¿qué tipos de objetos puedo arrojar sobre él y poder mostrar y editar de manera confiable? He encontrado muchos tutoriales sobre el uso de editores personalizados (que puedo hacer en algún momento). Pero ahora mismo, en mi programa, le permito al usuario crear sus propias propiedades personalizadas y quiero saber qué tipos de objetos debería permitir, asumiendo que los estarán editando en un PropertyGrid.Editores incorporados predeterminados para el control PropertyGrid
Respuesta
Es posible que desee consultar las clases que se derivan de UITypeEditor
(en el System.Drawing.Design
namespace). Estos tipos se pasarán como parámetros al EditorAttribute
(en el System.ComponentModel
namespace).
También puede consultar los metadatos del tipo para ver dónde se aplica EditorAttribute
. Sin embargo, no use use la reflexión aquí, ya que eso no es lo que usa el PropertyGrid
class.
Utilice el TypeDescriptor
class para obtener descripciones de propiedad para las propiedades del tipo (llame al GetProperties
method estático). Luego, con la instancia PropertyDescriptor
, llame al GetEditor
method para obtener una instancia del editor para esa propiedad.
Puede arrojar cualquier objeto en PropertyGrid. Hará muchas cosas automáticamente. Solo necesita crear editores de tipo de IU personalizados si desea tener una experiencia de edición especial, que no se proporciona de forma nativa. E incluso en ese caso lo haces por propiedad y no por un objeto completo.
PropertyGrid utiliza TypeConverters y hay TypeConverters para cada tipo de primitiva (así como colecciones de tipos primitivos).
Siempre que utilice uno de los tipos primitivos o una colección de tipos primitivos, la cuadrícula de propiedad debería poder proporcionar una interfaz de usuario de edición.
Además de UITypeEditors, PropertyGrid puede mostrar cualquier objeto con un TypeConverter que devuelve verdadero para CanConvertFrom (String). Puede implementar sus propios TypeConverters para tipos de objetos específicos para lograr esto.
Tenga en cuenta que hay algunas clases no públicas.
System.Object
System.Drawing.Design.UITypeEditor
System.ComponentModel.Design.CollectionEditor
System.ComponentModel.Design.ArrayEditor
System.Web.UI.Design.CollectionEditorBase
System.Web.UI.Design.WebControls.WizardStepCollectionEditor
System.Web.UI.Design.WebControls.EmbeddedMailObjectCollectionEditor
System.Web.UI.Design.WebControls.HotSpotCollectionEditor
System.Web.UI.Design.WebControls.ListItemsCollectionEditor
System.Web.UI.Design.WebControls.MenuItemStyleCollectionEditor
System.Web.UI.Design.WebControls.RoleGroupCollectionEditor
System.Web.UI.Design.WebControls.StyleCollectionEditor
System.Web.UI.Design.WebControls.SubMenuStyleCollectionEditor
System.Web.UI.Design.WebControls.TableCellsCollectionEditor
System.Web.UI.Design.WebControls.TableRowsCollectionEditor
System.ComponentModel.Design.BinaryEditor
System.ComponentModel.Design.DateTimeEditor
System.ComponentModel.Design.MultilineStringEditor
System.ComponentModel.Design.ObjectSelectorEditor
System.Windows.Forms.Design.AnchorEditor
System.Windows.Forms.Design.BorderSidesEditor
System.Windows.Forms.Design.DockEditor
System.Windows.Forms.Design.FileNameEditor
System.Windows.Forms.Design.FolderNameEditor
System.Windows.Forms.Design.ShortcutKeysEditor
System.Web.UI.Design.ConnectionStringEditor
System.Web.UI.Design.DataBindingCollectionEditor
System.Web.UI.Design.ExpressionsCollectionEditor
System.Web.UI.Design.UrlEditor
System.Web.UI.Design.XmlFileEditor
System.Web.UI.Design.WebControls.DataGridColumnCollectionEditor
System.Web.UI.Design.WebControls.DataControlFieldTypeEditor
System.Web.UI.Design.WebControls.MenuBindingsEditor
System.Web.UI.Design.WebControls.MenuItemCollectionEditor
System.Web.UI.Design.WebControls.ParameterCollectionEditor
System.Web.UI.Design.WebControls.RegexTypeEditor
System.Web.UI.Design.WebControls.TreeNodeCollectionEditor
System.Web.UI.Design.WebControls.TreeViewBindingsEditor
System.Web.UI.Design.WebControls.DataPagerFieldTypeEditor
System.Messaging.Design.QueuePathEditor
System.Drawing.Design.ImageEditor
System.Drawing.Design.ColorEditor
System.Drawing.Design.ContentAlignmentEditor
System.Drawing.Design.CursorEditor
System.Drawing.Design.FontEditor
System.Drawing.Design.FontNameEditor
System.Drawing.Design.IconEditor
System.Workflow.ComponentModel.Design.TypeBrowserEditor
System.Workflow.ComponentModel.Design.BindUITypeEditor
- 1. Editores PHP para Ubuntu
- 2. Alternativas PropertyGrid
- 3. Actualizar un PropertyGrid
- 4. Obtenga los PropertyDescriptors predeterminados para un tipo
- 5. Cómo cambiar el color del borde (o eliminar el borde) de un control PropertyGrid?
- 6. Winforms PropertyGrid - propiedades no editables
- 7. ¿PropertyGrid no nota las propiedades cambiadas en el código?
- 8. Usando Xceed PropertyGrid
- 9. ¿Hay sonidos incorporados/predeterminados que se puedan utilizar en una aplicación?
- 10. EventArgs genéricos para los tipos incorporados
- 11. PropertyGrid - ¿Nombres de propiedad personalizados?
- 12. Implementando subcampos en un PropertyGrid
- 13. ¿Hay editores alternativos para archivos .m?
- 14. editores para tablas en Sphinx/reStructuredText?
- 15. candidatos operador incorporados
- 16. Valores predeterminados para el parámetro AdoNetAppender
- 17. ¿El constructor predeterminado inicializa los tipos incorporados?
- 18. argumentos predeterminados para estructuras
- 19. Recursos dll incorporados
- 20. PropertyGrid y tipos de objetos dinámicos
- 21. ¿Editores de texto con el modo vim?
- 22. ¿Otros editores de scriptable?
- 23. HDF5 visores/editores Linux
- 24. Eliminar paquetes incorporados en Emacs
- 25. Tipos incorporados, cuándo (no) usar?
- 26. Cambiar el valor del elemento de propiedad en PropertyGrid
- 27. Propiedad de solo lectura PropertyGrid en el nivel de objeto
- 28. ¿Hay convertidores predeterminados para WPF?
- 29. gitolite: controles remotos predeterminados para el nuevo repositorio
- 30. ¿Hay editores XSL-FO gratuitos?
Pero, ¿qué es lo que hará automáticamente? En este momento no quiero lidiar con editores personalizados. Probé varios números, string, bool y DateTime y todos funcionan o tienen editores integrados. Esperaba que hubiera una lista en algún lugar de todos los tipos que se pueden editar de manera predeterminada. –
Puede ver la jerarquía de herencia de sus tipos de propiedad si tienen un UITypeEditor adjunto como atributo o no. De forma predeterminada, la cuadrícula de propiedades necesita un editor o un convertidor de tipos para llegar a/desde la cadena. – grover