2010-06-07 16 views
7

Quando uso il Command in un controllo Button il gestore di eventi che hanno aderito con Click evento sarà mai sollevato,WPF comando con Click Event Handler

Come posso utilizzare il Command e gestire il gestore Click eventi?

risposta

17

È possibile collegare ICommand a un'altra proprietà ed eseguirlo dal gestore Click.

<Button x:Name="MyButton" Tag="{x:Static ApplicationCommands.Stop}" Click="MyButton_Click" /> 

e nel gestore:

private void MyButton_Click(object sender, RoutedEventArgs e) 
{ 
    var button = sender as Button; 
    if (button != null) 
    { 
     var command = button.Tag as ICommand; 
     if (command != null) 
      command.Execute(button.CommandParameter); 
    } 
} 

Si piacerebbe anche bisogno di fare qualche lavoro extra se si voleva mantenere il comportamento disabilitando comando.

+0

ho usato, grazie John – Tomas1

-3

Un comando è un tipo di evento della settimana. Il bene pensa ai comandi è che non è necessario usare gli eventi. In realtà non è necessario utilizzare il code behind ed eventi se si utilizza un pattern Viewmodel. Vedere i comandi a relè: http://blog.galasoft.ch/archive/2009/09/26/using-relaycommands-in-silverlight-and-wpf.aspx

+1

Questo non è giusto, è necessario utilizzare il codice dietro di se si desidera visualizzare aggiornare cose come SeletedItem nel ViewModel o manipolare in zona modo specifico su come funzionano le selezioni. –

Problemi correlati