Leiten des aktuellen Fensters als Commandparameter
-
29-09-2019 - |
Frage
Wie kann ich das Fenster gehe ich zur Zeit bin auf als Parameter auf einen Befehl?
Ich mag diese in XAML-Markup tun:
<Button Command="CommandGetsCalled" CommandParameter="-this?-" />
Lösung
Es gibt zwei Möglichkeiten, wie ich denken kann, dies zu tun: Geben Sie das Fenster einen Namen (über ein x:Name
Attribut auf dem Window
-Tag, und dann baut eine Bindung wie folgt aus (den Namen des Fensters wird davon ausgegangen ist ‚ThisWindow‘):
<Button Command="CommandGetsCalled" CommandParameter="{Binding ElementName=ThisWindow}" />
Für etwas allgemeinere (nicht verlassen das aktuelle Fenster einen Namen zu geben), kann die Bindung wie folgt aufgebaut sein:
<Button Command="CommandGetsCalled" CommandParameter="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}}" />
Andere Tipps
Sie könnten versuchen, auf eine Bindung Relative
Wenn Sie die Taste als Parameter übergeben werden sollen:
<Button Command="CommandGetsCalled"
CommandParameter="{Binding RelativeSource={RelativeSource Self}}" />
Wenn Sie das Fenster als Parameter übergeben werden sollen:
<Button Command="CommandGetsCalled"
CommandParameter="{Binding RelativeSource={
RelativeSource AncestorType={x:Type Window}}}" />
In meiner Situation keine der Antworten gearbeitet.
Das ist für mich gearbeitet:
<window x:Name="myWindow">
<Button Command="Command" CommandParameter={x:Reference Name=myWindow}/>
</window>