Wie wird ein dynamisches Objekt im Eigenschaftenraster angezeigt?

Ich habe einen benutzerdefinierten Objekttyp, der in @ bearbeitet werden musPropertyGrid:

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

Welche hat eine Liste von benutzerdefinierten Eigenschaften:

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

Das Hauptproblem hier ist, dass diePropertyGrid control erlaubt keine Bearbeitung und verwendet auch keine geeigneten Bearbeitungstools für propertyDefaultValue, das zuvor durch Setzen des Werts von @ instanziiert wiCustomProperty 's FeldType.

Eine Art vonDefaultValue ist nur zur Laufzeit bekannt.

Darüber hinaus muss ich eine benutzerdefinierteTypeConverter zumCustomProperty 's EigentumType, um eine Dropdown-Liste der unterstützten Typen anzuzeigen (z. B.Int, String, Color, MyOwnClass).

Wie würde ich das machen?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage