¿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 deCustomPropertycampo deType.

Tipo deDefaultValue solo se conoce en tiempo de ejecución.

Además, necesito suministrar una costumbreTypeConverter paraCustomPropertypropiedad deType para mostrar una lista desplegable de tipos admitidos (por ejemplo,Int, String, Color, MyOwnClass)

¿Como podría hacerlo?

Respuestas a la pregunta(2)

Su respuesta a la pregunta