Laden...

Subproperty im Designer

Erstellt von Vincent Duke vor 15 Jahren Letzter Beitrag vor 15 Jahren 1.194 Views
V
Vincent Duke Themenstarter:in
27 Beiträge seit 2009
vor 15 Jahren
Subproperty im Designer

Hallo!

Ich habe eine eigene TextBox erstellt. Diese TextBox verfügt über mehrere zusätzliche properties.
Eine davon gibt an ob die TextBox double Werte zulässt.
Nun möchte ich als subproperty von "AllowDouble", "OnlyPositive" haben.
Gibt es dazu ein Attribut.

Gruß
Vincent

O
778 Beiträge seit 2007
vor 15 Jahren

Nein. Es geht aber natürlich trotzdem, wenn auch deutlich komplizierter.

"Subproperties" werden von TypeConvertern bereitgestellt, d.h., bau dir am besten deinen eigenen TypeConverter für diese Property und weis diesen per Attribut zu, damit kriegst du's hin. Anders geht es nicht oder nur noch komplizierter.

Georg

72 Beiträge seit 2008
vor 15 Jahren

Hmm, mag sein das ich da wieder zu einfach denke - aber machs doch einfach via Enum:


public enum AllowDoubleTypes
{
OnlyPositive,
OnlyNegative
// ... usw.
}

private AllowDoubleTypes _allowDouble = AllowDoubleTypes.OnlyPositive

public AllowDoubleTypes AllowDouble{ get { return _allowDouble; } set { _allowDouble = value; }}

Der Designer zeigt es dann schon richtig an - um die Behandlung dieser Property musst Du dich dann selbst kümmern. Oder habe ich da was missverstanden ...

O
778 Beiträge seit 2007
vor 15 Jahren

So wie ich das verstanden hab dreht es sich darum, dass es eine Eigenschaft AllowDouble gibt, die von der Sache her erstmal bool deklariert ist, und nur wenn das auf true steht, dann soll als "Untereigenschaft" OnlyPositive auftauchen, was dann auch wieder bool ist.

Somit ist die Lösung mit dem enum zwar eine sehr einfache Lösung, die aber das eigentliche Problem nur umschifft. Das geht aber auch nur, weil die Eigenschaften bool sind. Wenn das komplexere Typen sind, die man nicht in enums zusammenfassen kann wird die Sache schon problematischer....

V
Vincent Duke Themenstarter:in
27 Beiträge seit 2009
vor 15 Jahren

Genau.
Ich möchte es so haben wie z.B. bei einer PictureBox und dessen BackgroundImage. Erst beim hinzufügen eines Images werden einige Subeinstellungen sichtbar.

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo Vincent Duke,

das liegt daran, dass a) Image eine eigene Klasse ist und b) für die Image-Property der PictureBox-Klasse vermutlich ein ExpandableObjectConverter als TypConverterAttribute angegeben ist.

herbivore