2012-09-13 216 views
10

我有一個DataTemplate,它表示通過一組自定義AppBarCommand對象聲明的AppBar按鈕。將WPF按鈕CommandParameter綁定到DataTemplate中的按鈕本身

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

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

我想添加一個CommandParameter綁定,但參數必須是Button本身。這樣我就可以設置Call​​isto彈出的PlacementTarget。這可能嗎?

+0

可能更容易處理按鈕的Click事件。您在處理程序中收到的第一個參數將是Button。 – Jay

回答

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

您的命令屬性應該是RelayCommand通用版:RelayCommand<object>爲例。

+0

有人比我快! +1 –

+0

無法編譯。 – aaron

4

回答這樣米克洛什巴洛格說,或者您可以:

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