現在表示しているウィンドウをパラメーターとしてコマンドに渡すにはどうすればよいですか?
XAML マークアップでこれを行うのが好きです。
<Button Command="CommandGetsCalled" CommandParameter="-this?-" />
現在表示しているウィンドウをパラメーターとしてコマンドに渡すにはどうすればよいですか?
XAML マークアップでこれを行うのが好きです。
<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}}" />
Window をパラメーターとして渡したい場合:
<Button Command="CommandGetsCalled"
CommandParameter="{Binding RelativeSource={
RelativeSource AncestorType={x:Type Window}}}" />