Wie werden PropertyGrid-Elemente aufgelistet?

8

Ich habe ein PropertyGrid mit zugewiesenem Objekt.

%Vor%

Ich möchte alle Gitterelemente erhalten, wie ich selectedGridItem Eigenschaft erhalten kann:

%Vor%

Kann ich das tun?

    
Yuriy 02.03.2011, 14:49
quelle

3 Antworten

5

Hier ist ein Codeabschnitt, der alle GridItem-Objekte eines Eigenschaftenrasters abruft:

%Vor%

Natürlich, da dies ein undokumentiertes privates Feld des Property Grids verwendet, wird nicht garantiert, dass es in der Zukunft funktioniert: -)

Sobald Sie alle GridItems haben, können Sie sie mit der Eigenschaft GridItem.GridItemType filtern.

    
Simon Mourier 03.03.2011, 13:37
quelle
2

Wenn Sie nur die Eigenschaften des Objekts benötigen, können Sie diese über Reflection erhalten:

%Vor%

Wenn Sie einige der Eigenschaften mit BrowsableAttribute(false) ausgeblendet haben, können Sie GetProperties(Type, Attribute[]) um diese herauszufiltern.

Ich kenne keine Methode, die eine GridItem-Auflistung zurückgibt.

Aktualisieren
Natürlich können Sie auch die Zeichenfolge, die das PropertyGrid für die Labels verwendet, über Reflection abrufen.
Wenn Sie die Eigenschaft mit DisplayNameAttribute("ABC") dekoriert haben, sollten Sie in der Lage sein, über GetCustomAttributes(Type, Boolean) . Ansonsten verwende einfach den Namen des PropertyDescriptor.

    
Thomas Zoechling 02.03.2011 14:59
quelle
2

Überprüfen Sie auch die Lösung mithilfe der Parent-Eigenschaft @ C # Auswählen der ersten Zeile in KategorisiertAlphabetisch sortiert PropertyGrid

    
Max OfLondon 02.07.2011 12:54
quelle

Tags und Links