現在表示しているウィンドウをパラメーターとしてコマンドに渡すにはどうすればよいですか?
私はこれをXAMLマークアップで行うのが好きです:
<Button Command="CommandGetsCalled" CommandParameter="-this?-" />
これを行うには、2つの方法が考えられます。ウィンドウに名前を付け(Window
タグのx:Name
属性を使用して)、次のようなバインディングを作成します(ウィンドウの名前を想定) '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>