Laden...

Property "aufklappbar" machen

Letzter Beitrag vor 18 Jahren 6 Posts 2.850 Views
Property "aufklappbar" machen

Hi!

Ich programmiere seit ein paar Wochen mit C# und bin gerade auf ein Problem gestoßen, bei dem mir die MSDN nicht weiterhelfen konnte: ich habe eine Klasse, die von UserControl abgeleitet ist und eine Property hat, deren Typ eine selbst erstellte Klasse ist.
Ich hätte nun gerne, dass neben dieser Property im "Properties"-Fenster (in Delphi heißt das Ding "Objektinspektor, kA, ob das hier auch einen speziellen Namen hat) ein kleines (+) erscheint, das es mir erlaubt, die "Sub"-Properties meiner Property zu bearbeiten. Vielleicht lässt sich das mit einem Beispiel besser erklären: wenn ich zB eine Property vom Typ Point habe

protected Point Bar;
public Point Foo { get { return Bar; } set { Bar = value; } }

, kann ich X und Y separat bearbeiten. Ich bräuchte genau das, nur für die Properties meiner eigenen Klasse. Gibt es irgendeinen unkomplizierten Weg, das zu realisieren?

Danke
Dust Signs

Die Nummer, die Sie gewählt haben, ist imaginär. Bitte drehen Sie Ihr Telefon um 90° und versuchen Sie es erneut.

Stichwort: TypeConverter und ExpandableObjectConverter
Info dazu: PropertyGrid-Webcast Teil1 (und mehr zu PropertyGrid Teil2).

A wise man can learn more from a foolish question than a fool can learn from a wise answer!
Bruce Lee

Populanten von Domizilen mit fragiler, transparenter Außenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
Wer im Glashaus sitzt, sollte nicht mit Steinen werfen.

Bei den Convertern war ich schon - bei 40 Properties wird das ganze etwas mühselig; daher auch die Frage, ob das nicht irgendwie einfacher geht.

Dust Signs

Die Nummer, die Sie gewählt haben, ist imaginär. Bitte drehen Sie Ihr Telefon um 90° und versuchen Sie es erneut.

Hallo Dust Signs,

du brauchst ja den Converter/Editor nicht pro Property, sondern nur pro Typ. Einfacher wird es nicht gehen.

herbivore

Das schon, aber das noch viel größere Problem ist folgendes: ich habe einige Properties, die vom Typ her Pen bzw. Brush sind. Ganz abgesehen davon, dass diese Properties standardmäßig nicht dargestellt werden können, hab ich auch keine Ahnung, wie ich die sinnvoll in zB einen String packen könnte.
So, wie der Aufwand momentan aussieht, werde ich die Sache mit dem UserControl wohl besser bleiben lassen. Es sei denn, es gibt irgendeine einfachere Lösung. Vielleicht sollte ich noch erwähnen, dass das Property, das ich bearbeiten möchte, nicht komplett neu gesetzt werden sollte, wenn ich einen Wert ändere. Vielmehr sollte nur der eine Wert geändert werden... es soll quasi die Property der Instanz meiner Klasse geändert werden, nicht die Instanz komplett ersetzt werden.

Dust Signs

Die Nummer, die Sie gewählt haben, ist imaginär. Bitte drehen Sie Ihr Telefon um 90° und versuchen Sie es erneut.

Wie wärs, wenn du einen Dialog machst, in dem wieder ein PropertyGrid für den Wert der Property ist?
Stichwort: UITypeEditor und Beschreibung im Teil2 des oben genannten Webcasts.

A wise man can learn more from a foolish question than a fool can learn from a wise answer!
Bruce Lee

Populanten von Domizilen mit fragiler, transparenter Außenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
Wer im Glashaus sitzt, sollte nicht mit Steinen werfen.