Laden...

Override Custom Control Properties.Property

Erstellt von Chevy77 vor 5 Jahren Letzter Beitrag vor 5 Jahren 1.519 Views
C
Chevy77 Themenstarter:in
39 Beiträge seit 2018
vor 5 Jahren
Override Custom Control Properties.Property

Hi,

ich benutze ein DevExpress-Control, dass Ein Property namens "Properties" hat und mit Properties.AutoHeight greift man auf ein Property dieser Sammlung zu.

Jetzt möchte ich das nicht im Konstruktor tun, da es dann immer für die Runtime gilt.

Ich möchte am Liebsten das Property überschreiben und dann hat der Programmierer in seinem Form immer noch die Wahl.

Das geht logischweise nicht, verdeutlicht aber was ich möchte:


private _AutoHeight As Boolean = False
   Public Overrides Property Properties.AutoHeight As Boolean
...
   End Property

16.806 Beiträge seit 2008
vor 5 Jahren

Mich würde wundern, wenn irgendjemand sofort erraten kann, von was Du redest.

Versetz Dich mal in die Lage eines Helfers, der weder Anwendung, noch Idee, noch Technologie kennt - denn das alles verschweigst Du. Nicht mal der Forenbereich ist der richtige.
Würdest Du wissen, wovon Du sprichst? 😉

C
Chevy77 Themenstarter:in
39 Beiträge seit 2018
vor 5 Jahren

Weiss nicht wie ichs besser erklären soll, mit <Containerobjekt>.Property ist doch eigentlich alles gesagt.

Ich will das Property überschreiben und einen Defaultwert setzen.

Hab die Lösung aber, wenn jem Interesse hat, einfach nochmal schreiben.

3.003 Beiträge seit 2006
vor 5 Jahren

So funktioniert ein Forum. Man postet Lösungen, auch, wenn man selbst drauf gekommen ist. Sonst sterben alle anderen dumm, und das kann ja keiner wollen.

Kannst du auch noch erläutern, was dieser Satz bedeutet:

Jetzt möchte ich das nicht im Konstruktor tun, da es dann immer für die Runtime gilt.

Ich bin nur neugierig.

LaTino

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)

301 Beiträge seit 2009
vor 5 Jahren

Ich vermute mal er will die PropertyImplementierung mit new überschreiben.

Eine hervorragende Idee.

C
Chevy77 Themenstarter:in
39 Beiträge seit 2018
vor 5 Jahren

Jetzt möchte ich das nicht im Konstruktor tun, da es dann immer für die Runtime gilt.

Sobald ich AutoHeight = False in den Konstruktor platziere, gilt das für jedes Control diesen Typs.

Ich wollte das nur als DefaultValue auf False setzen und der Programmierer kann dann per Designer+Properties-Fenster das Property selber nochmal umschalten auf True, wenn er es denn so braucht.

Lösung:


   Private _AutoHeight As Boolean = False

   <DefaultValue("False")>
   Public Overrides Property AutoHeight As Boolean
      Get
         Return _AutoHeight
      End Get
      Set(value As Boolean)
         _AutoHeight = value
      End Set
   End Property

Im DevExpress RepositoryItem, welches in <Control>.Properties zugewiesen wird.

301 Beiträge seit 2009
vor 5 Jahren

Und gilt das jetzt für Windows Forms oder WPF ?

C
Chevy77 Themenstarter:in
39 Beiträge seit 2018
vor 5 Jahren

Forms

Hinweis von Abt vor 5 Jahren

Daher auch mal in den richtigen Forenbereich verschoben, damit die Nachwelt überhaupt weiß, von was man spricht.