¿Cómo mostrar un objeto dinámico en la cuadrícula de propiedades?
Tengo un tipo de objeto personalizado que tiene que ser editable enPropertyGrid
:
public class CustomObjectType
{
public string Name { get; set; }
public List<CustomProperty> Properties {get; set;}
}
Que tiene una lista de propiedades personalizadas:
public class CustomProperty
{
public string Name { get; set; }
public string Desc { get; set; }
public Object DefaultValue { get; set; }
Type type;
public Type Type
{
get
{
return type;
}
set
{
type = value;
DefaultValue = Activator.CreateInstance(value);
}
}
}
El principal problema aquí es que elPropertyGrid
control no permite editar, ni utiliza herramientas de edición apropiadas para la propiedadDefaultValue
que se instancia previamente configurando el valor deCustomProperty
campo deType
.
Tipo deDefaultValue
solo se conoce en tiempo de ejecución.
Además, necesito suministrar una costumbreTypeConverter
paraCustomProperty
propiedad deType
para mostrar una lista desplegable de tipos admitidos (por ejemplo,Int
, String
, Color
, MyOwnClass
)
¿Como podría hacerlo?