Comment faire pour afficher un objet dynamique dans la propriété de la grille?

J'ai un personnalisé du type d'objet qui doit être modifiable dans PropertyGrid:

public class CustomObjectType
{
    public string Name { get; set; }        
    public List<CustomProperty> Properties {get; set;}
}

Qui dispose d'une liste de propriétés personnalisées:

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);
        }              
    }
}

Le principal problème ici est que le PropertyGrid de contrôle ne permet pas de modifier, ni utilise les outils d'édition pour la propriété DefaultValue qui est instancié à l'avance par la mise en valeur de CustomProperty's champ Type.

Type de DefaultValue n'est connue qu'à l'exécution.

Par ailleurs, j'ai besoin de fournir une coutume TypeConverter pour CustomPropertybiens Type pour afficher une liste déroulante des types pris en charge (par exemple, Int, String, Color, MyOwnClass).

Comment dois-je procéder?

OriginalL'auteur JBeurer | 2010-08-16