Привязка кнопки WPF CommandParameter к самой кнопке в DataTemplate

У меня есть DataTemplate, который представляет кнопки AppBar, которые я объявляю через коллекцию пользовательских объектов AppBarCommand.

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

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

Я хотел бы добавить привязку CommandParameter, но параметр должен быть самой кнопкой. Это для того, чтобы я мог установить PlacementTarget вылета Callisto. Возможно ли это?

2 ответов


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

ваше свойство команды должно быть общей версией RelayCommand: RelayCommand<object> например.


ответьте, как сказал Миклош Балог, или вы можете:

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