Il y a beaucoup de discussions sur M-V-VM et la liaison de commande (RelayCommand) mais peu de choses ont été couvertes sur les événements routés se liant à un gestionnaire dans un modèle M-V-VM. Je veux trouver quelle est la meilleure approche.WPF Événements MVVM routés
Voici un exemple de liaison RoutedEvent utilisant un événement personnalisé et un gestionnaire d'événements lié à la machine virtuelle.
<Navigation:LeftNavigation x:Name="_leftNav" Margin="3"
BindingHelper:EventHelper.RoutedEvent="Events:Customer.SelectionChanged"
BindingHelper:EventHelper.EventHandler="{Binding SelectionChanged}" />
Dans mon Vm, j'aurais un gestionnaire d'événements similaire à celui-ci.
public void SelectionChanged(object sender, CustomerSelectionChangedArgs e)
{
// Do something
}
Ceci est seulement un concept tiré de nombreux exemples de la commande de liaison. Comment pourrais-je obtenir cela pour les événements routés.
Merci Jalfp, j'ai essayé moi-même cette technique. Le problème que j'ai trouvé avec cette approche est que la commande/action s'exécute avec seulement les paramètres transmis par CommandParameter, mais qu'en est-il des arguments d'événement provenant de l'événement qui l'a déclenché. Y a-t-il une solution à ce problème ou suis-je tout à fait dans le mauvais chemin? –
Je pense que vous pourriez changer le code de sorte que lorsque vous appelez votre commande, vous donnez en paramètre un Tuple au lieu de donner simplement l'objet CommandParameter –
japf
Pourriez-vous me montrer un exemple s'il vous plaît. –