質問

現在オンになっているウィンドウをパラメーターとしてコマンドに渡すにはどうすればよいですか?

Xaml-Markupでこれを行うのが好きです:

<Button Command="CommandGetsCalled" CommandParameter="-this?-" />
役に立ちましたか?

解決

私がこれを行うために考えることができる2つの方法があります:ウィンドウに名前を与える( x:Name の属性 Window タグを付けてから、このようなバインディングを作成します(ウィンドウの名前が「thiswindow」であると仮定します):

<Button Command="CommandGetsCalled" CommandParameter="{Binding ElementName=ThisWindow}" />

より一般的なもののために(現在のウィンドウに名前を付けることに依存していません)、バインディングは次のように構築できます。

<Button Command="CommandGetsCalled" CommandParameter="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}}" /> 

他のヒント

親RelativeSourceにバインディングしてみることができます

パラメーターとしてボタンを渡したい場合:

<Button Command="CommandGetsCalled" 
        CommandParameter="{Binding RelativeSource={RelativeSource Self}}" />

ウィンドウをパラメーターとして渡したい場合:

<Button Command="CommandGetsCalled" 
        CommandParameter="{Binding RelativeSource={
             RelativeSource AncestorType={x:Type Window}}}" />

私の状況では、提供された回答のどれも機能しませんでした。

これは私のために働いた:

<window x:Name="myWindow">
 <Button Command="Command" CommandParameter={x:Reference Name=myWindow}/>
</window>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top