Bonjour,
J'aimerai créer pour une ListView une commande de type ICommand (comme pour un button), et spécifier l'évènement qui déclenche la commande.
De plus, cette commande exécutera une routedcommand préalablement défini.
Au niveau xaml, pour la listView, j'aurai:
J'associe MyRoutedCommand et la callback command _Executed:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <ListView x:Name="MyListView" Mycommand="{x:Static MyRoutedCommand}">
Concernant l'évènement qui déclenche la commande, j'utilise un RoutedEvent dans le listview:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 CommandBinding command = new CommandBinding(MyRoutedCommand); command .Executed += new ExecutedRoutedEventHandler(command _Executed); CommandBindings.Add(command);
Le déclenchement de l'évènement se fait dans le code de cette manière:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 public static RoutedEvent MyRoutedEvent; public event RoutedEventHandler MyEventHandler { add { AddHandler(MyRoutedEvent, value); } remove { RemoveHandler(MyRoutedEvent, value); } } static MyListView() { MyRoutedEvent= EventManager.RegisterRoutedEvent("MyEventHandler", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(MyListView)); }
Concernant la commande, je pensais définir une classe qui hérite de ICommand mais, et c'est là où je coince, je ne sais pas comment associer MyRoutedEvent avec MyCommand.
Code : Sélectionner tout - Visualiser dans une fenêtre à part RaiseEvent(new RoutedEventArgs(MyListView.ExampleEvent, this));
Merci d'avance !
AL2000
Partager