Comment lier une commande dans WPF à un gestionnaire d’événements double-clic d’un contrôle?

J’ai besoin de lier l’événement de double clic d’un bloc de texte (ou potentiellement une image aussi bien, que ce soit un contrôle utilisateur), à une commande dans mon ViewModel.

TextBlock.InputBindings ne semble pas se lier correctement à mes commandes, aucune aide?

Essayez les comportements de commande associés à Marlon Grech.

C’est simple, utilisons la méthode MVVM: j’utilise ici MVVM Light, facile à apprendre et à utiliser.

1. Saisissez les lignes suivantes dans les déclarations xmlns:

 xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" xmlns:GalaSoft_MvvmLight_Command="clr-namespace:GalaSoft.MvvmLight.Command; assembly=GalaSoft.MvvmLight.Extras.WPF4" 

2.définissez votre bloc de texte comme suit:

        

3. Ensuite, écrivez votre code de commande dans votre vue!

ViewModel1.cs

 Public RelayCommand Edit_Command { get; private set; } Public ViewModel1() { Edit_Command=new RelayCommand(()=>execute_me()); } public void execute_me() { //write your code here } 

J’espère que cela fonctionne pour vous car je l’ai utilisé dans l’application Real ERP

J’ai également eu un problème similaire où je devais lier l’événement MouseDoubleClick d’une vue de liste à une commande de mon ViewModel.

La solution la plus simple que j’ai proposée consiste à placer un bouton factice avec la commande de liaison souhaitée et à appeler la méthode Execute de la commande du bouton dans le gestionnaire d’événements de l’événement MouseDoubleClick.

.xaml

    

codebehind

  private void ListView_MouseDoubleClick(object sender, MouseButtonEventArgs e) { doubleClickButton.Command.Execute(null); } 

Ce n’est pas simple mais c’est très simple et ça marche.