2012-09-13 7 views
10

Ho un DataTemplate che rappresenta i pulsanti AppBar che dichiaro tramite una raccolta di oggetti personalizzati AppBarCommand.Associazione di un parametro WPF CommandParameter al pulsante stesso in DataTemplate

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

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

vorrei aggiungere un CommandParameter vincolante, ma il parametro deve essere il pulsante stesso. Questo è così che posso impostare PlacementTarget di un flyout Callisto. È possibile?

+0

probabilmente più facile da gestire l'evento Click del pulsante. Il primo argomento che ricevi nel tuo gestore sarà il pulsante. – Jay

risposta

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

La tua struttura di comando dovrebbe essere la versione generica del RelayCommand: RelayCommand<object> per esempio.

+0

Qualcuno più veloce di me! +1 –

+0

non può essere compilato. – aaron

4

risposta come Miklós Balogh ha detto, o si può:

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