ComponentModel - Wie erstellt man zusammegesetzte Attribute
-
Hallo,
Ich benutze Windows.Forms.PropertyGrid um die Attritubte meiner Objekte anzuzeigen. Hier ein Beispiel:
class Foo { [ CategoryAttribute("Misc"), DescriptionAttribute("Name of the object.") ] public string Name{ set{name = value;} get{return name;} } private string name; [ CategoryAttribute("Misc"), DescriptionAttribute("Position of the object.") ] public Vec3 Position{ set{position = value;} get{return position;} } private Vec3 position; . . . } class Vec3 { [ CategoryAttribute("Vector"), DescriptionAttribute("X Value.") ] public double X{ get{...} set{...} } . . . }
Nun habe ich das Problem, das im PropertyGrid der Vector als String dargestellt wird (ToString() wird aufgerufen), jedoch nicht die Properties des Vektors.
Wie kann man solche Attribs darstellen, bzw. wie kann man ganze Attributbäume erstellen (wie man sie im Form Designer sieht) ?
-
Ist leider etwas komplizierter als einfache Attribute zu setzen, du benötigst einen TypeConverter bzw. Editor dazu. Schau mal folgdnen Artikel an:
http://msdn.microsoft.com/msdnmag/issues/03/05/Design-TimeControls/default.aspx