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?-" />
War es hilfreich?

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>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top