28

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

XAML マークアップでこれを行うのが好きです。

<Button Command="CommandGetsCalled" CommandParameter="-this?-" />
4

3 に答える 3

72

これを行うには、次の 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}}}" /> 
于 2010-08-17T16:17:39.533 に答える
22

RelativeSource にバインドしてみることができます

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

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

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

<Button Command="CommandGetsCalled" 
        CommandParameter="{Binding RelativeSource={
             RelativeSource AncestorType={x:Type Window}}}" />
于 2010-08-17T16:17:55.257 に答える