web-dev-qa-db-ja.com

WPFボタンのCommandParameterをDataTemplateのボタン自体にバインドする

カスタムAppBarCommandオブジェクトのコレクションを介して宣言するAppBarボタンを表すDataTemplateがあります。

  public AppBarCommand(RelayCommand command, string buttonstyle)
  {
     Command = command;
     ButtonStyle = buttonstyle;
  }

<DataTemplate>
   <Button Command="{Binding Command}"
           Style="{Binding ButtonStyle, Converter={StaticResource StringNameToStyleConverter}}"/>
</DataTemplate>

CommandParameterバインディングを追加したいのですが、パラメーターはボタン自体である必要があります。これは、CallistoフライアウトのPlacementTargetを設定できるようにするためです。これは可能ですか?

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

Commandプロパティは、RelayCommandの汎用バージョンである必要があります。RelayCommand<object> 例えば。

36
Miklós Balogh

MiklósBaloghが言ったように答えてください、またはあなたはそうすることができます:

<Button x:Name="MyButton" Command="{Binding Command}" CommandParameter={Binding ElementName=MyButton ... /> 
4
King Chan