Laden...

Toplevel-Element eines Controls

Erstellt von Thoxx vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.142 Views
Thoxx Themenstarter:in
112 Beiträge seit 2008
vor 14 Jahren
Toplevel-Element eines Controls

Ich hab ein CustomControl, welches aus Border -> Grid -> TextBox + Button besteht, wenn ich jetzt im ClickEvent des Buttons bin, möchte ich wissen zu welchem Control der Button gehört
(konkret hab ich Knoten und in diesen Knoten befindet sich jeweils ein Button und wenn der Button gedrückt wurde, will ich wissen welcher Knoten das Parent ist).
Ich könnte jetzt vom Button das Parent nehmen, komme aufs Grid, dann von dort das Parent usw.... irgendwann hab ich mein UserControl, aber das muss doch einfacher gehen? Gibt es da nicht eine einfache Möglichkeit um das Root/Toplevel-Control rauszubekommen? Oder generell ein anderer Ansatz?
Danke schon mal 🙂

6.862 Beiträge seit 2003
vor 14 Jahren

Hallo,

Im Prinzip ist der Ansatz okay und es geht auch nicht viel anders, da du ja das Wissen haben musst, welche Controls noch so kommen um beim richtigen Parent zu landen.

Wobei WPF ja noch andere tolle Sachen kann 😉 Du kannst das Button Click Event doch einfach beim obersten Element deines Controls registrieren. Das Click Event ist ja nen Routed Event und bubbelt deshalb ja den Visual Tree hoch.

Achja: Im ersten Satz schreibst du Custom Control und im letzten Abschnitt dann User Control. Für dieses Problem machts keinen Unterschied, aber in WPF sind das zwei sehr verschiedene Dinge.

Baka wa shinanakya naoranai.

Mein XING Profil.

Thoxx Themenstarter:in
112 Beiträge seit 2008
vor 14 Jahren

Ah stimmt, an event bubbling hatte ich noch gar nicht gedachte, danke für den Tipp, das dürfte es in meinem Fall auch tun 😉

Achja: Im ersten Satz schreibst du Custom Control und im letzten Abschnitt dann User Control. Für dieses Problem machts keinen Unterschied, aber in WPF sind das zwei sehr verschiedene Dinge.

Oh stimmt, da habe ich natürlich auch CustomControl gemeint, kleiner Vertipper^^