2012-08-13 12 views
9

In der folgenden Abbildung ist "MyCars" eine Sammlung. Wenn die Eigenschaft eines Objekts eine Auflistung ist, wird der Wert in einem PropertyGrid als Zeichenfolge "(Sammlung)" mit einer Schaltfläche auf der rechten Seite angezeigt, wenn das Element ausgewählt ist.Wert für Eigenschaft in PropertyGrid ändern

Ist es möglich, den Wert "(Sammlung)" zu ändern? Wenn das so ist, wie? Der Grund, den ich stelle, ist, weil ich einen benutzerdefinierten UITypeEditor für das Objekt implementiert habe, das in meinem Programm in dem PropertyGrid angezeigt wird. Bis jetzt erscheint die Schaltfläche auf der rechten Seite, aber der Textwert ist derselbe wie der Anzeigename der Eigenschaft. Ich möchte, dass eine andere Zeichenfolge angezeigt wird.

Example propertygrid.

Edit: für das, was es wert ist, weiß ich, dass ich die PaintValue Methode von UITypeEditor außer Kraft setzen kann und ein Symbol zur Verfügung stellen, die ich am Ende tun kann, wenn ich dieses Problem nicht lösen können, aber ich würde Ich möchte immer noch wissen, ob und wie dieser "(Kollektion)" Text geändert werden kann.

+0

Ich denke, Sie würden immer noch mit "(Sammlung)" neben Ihrem Symbol enden, wenn Sie die PaintValue-Methode verwenden, aber nicht sicher. –

Antwort

7

Dieser Artikel Customized display of collection data in a PropertyGrid könnte hilfreich sein.


** UPDATE **

eine zusammengefasste Version des Artikels, um (im Fall der Verbindung nicht verfügbar ist), die Anzeige und die Beschreibung der Sammlung Inhalts Schritte, ein im Customizing PropertyGrid sind wie folgt:

  1. Geben Sie einen benutzerdefinierten Eigenschaftendeskriptor an, indem Sie eine Klasse von der abstrakten Basisklasse PropertyDescriptor ableiten.
  2. Überschreiben Sie abstrakte Methoden und Eigenschaften. Stellen Sie eine ordnungsgemäße Implementierung für die Eigenschaften DisplayName und Beschreibung bereit.
  3. Lassen Sie Ihre Erfassungsklasse die ICustomTypeDescriptor Schnittstelle implementieren.
  4. Geben Sie eine Sammlung von benutzerdefinierten Eigenschaftsdeskriptoren mit der Methode GetProperties() zurück.
  5. Verwenden Sie optional TypeConverter abgeleitete Objekte, die von .NET bereitgestellt werden, oder implementieren Sie Ihre eigenen Klassen, um die textuelle Darstellung Ihrer Domänenklassen anzupassen. Weisen Sie sie den entsprechenden Klassen oder Eigenschaften zu, indem Sie die Klasse TypeConverterAttribute verwenden.

Um die PropertyGrid Daten, Eigenschaftendeskriptoren können miteinander verkettet werden (siehe auch Globalized property grid) globalisieren.

+1

^Das ist die Antwort! –

+1

Wow! Das hat funktioniert! Vielen Dank! – kevin628

Verwandte Themen