Insertar TypeConverter en una propiedad en tiempo de ejecución, desde el interior de un UITypeEditor personalizada

StackOverflow https://stackoverflow.com/questions/2535647

Pregunta

He creado un UITypeEditor personalizado.

¿Puedo posiblemente insertar un atributo que también concede un TypeConverter a mi propiedad de dentro de la clase UITypeEditor?

He intentado lo siguiente, pero no pasa nada, no importa cómo lo giro y vuelta que:

Attribute[] newAttributes = new Attribute[1];
newAttributes[0] = new TypeConverterAttribute(typeof(BooleanConverter));

Ahora, por encima de las necesidades que tienen los siguientes unida a él de alguna manera:

TypeDescriptor.AddAttributes(context.Instance.PROPERTYNAME, newAttributes);

... pero ante todo no sé cómo llegar a la propiedad en cuestión de una manera genérica, y todo el código que intento simplemente falla. Incluso si trato de asignar el TypeConverter de esta manera, a nivel mundial, se produce un error. (Si lo establece como un atributo de la propiedad en sí funciona sin embargo, sólo para descartar que el error está en esa parte.)

¿Fue útil?

Solución

TypeDescriptor le permite añadir atributos (al menos, en lo que se refiere a System.ComponentModel) a tipo y objetos - pero no a propiedades específicas. Para hacer eso (de manera general requeriría TypeDescriptionProvider - sin embargo, tenga en cuenta que esto no es una cosa trivial de implementar, y que necesita para escribir todos:

  • el propio proveedor
  • una ICustomTypeDescriptor
  • PropertyDescriptor una de las cosas que quiere manipular

Es la PropertyDescriptor que le permitiría a fingir que tenía atributos adicionales (o, a través de un cambio override la Converter más directamente, sin jugar con atributos).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top