Accueil

Event to Command avec MVVM Light Galasoft

by Jean-Camille Mercier 5. juin 2013 09:24

Pour démarrer ma nouvelle application WPF j'ai choisi le framework MVVM Light de Laurent Bugnion aka "GalaSoft".

On y retrouve juste ce dont on a besoin pour bien démarrer un projet : un template visual studio, une classe de base pour les ViewModels, une gestion des commandes et de la messagerie clef en main, un DispatcherHelper et quelques snippets bien pratiques. Toutes les infos ici : http://www.galasoft.ch/mvvm/

Pour bien démarrer, je vous conseil la lecture de l'article d'Olivier Dahan ici :  http://www.e-naxos.com/Blog/post/2010/08/08/Appliquer-la-pattern-MVVM-avec-MVVM-Light.aspx

Et je vais donc vous montrer maintenant un élément vraiment sympa de ce framework, l'Event to Command qui permet d'associer rapidement un événement à une commande d’un ViewModel. Par exemple pour une grille : associer l’évènement « double clic » à la commande « AfficherSinistreCommand » :

<!-- Namespace -->
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" 
xmlns:gmc="clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight.Extras.WPF45"

<tlk:RadGridView … >
   <i:Interaction.Triggers>
      <i:EventTrigger EventName="MouseDoubleClick">
         <gmc:EventToCommand Command="{Binding AfficherSinistreCommand}"
                             CommandParameter="{Binding Id}" />
      </i:EventTrigger>
   </i:Interaction.Triggers>          
   <tlk:RadGridView.Columns>
      …     
   </tlk:RadGridView.Columns>
</tlk:RadGridView>

 Tout simplement !