WPF l'appel de commandes via des événements
Est-il possible d'appeler une commande via un événement dans WPF?
J'ai un bouton "enregistrer" qui lorsqu'il est pressé appelle une commande, il est pressé quand vous avez fini de modifier une zone de texte, il passe également un objet en tant que paramètre de la commande
<Button Content="Save" Command="{Binding DataContext.SaveQueueTimeCommand, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ItemsControl}}}" CommandParameter="{Binding}" />
Ce que j'ai l'idéal serait de le faire est d'appeler cette commande et de passer de l'objet en tant que paramètre lorsque la zone de texte perd le focus, plutôt que d'avoir à appuyer sur le bouton, quelque chose comme:
<Button LostFocus="{Binding SaveQueueTimeCommand}" />
Et toujours en quelque sorte passer l'objet en tant que paramètre.
Est-il possible de réaliser cela, sans utiliser de code derrière que je suis en utilisant le pattern MVVM
Merci pour votre temps
Vous devez vous connecter pour publier un commentaire.
La façon la plus simple de le faire est en utilisant une interaction déclencheur.
J'ai ajouté ce pour la postérité souci.
Vous pouvez utiliser comportements attachés à atteindre cet objectif. Marlon Grech a écrit le Joint De Commande Comportements de la bibliothèque pour vous épargner la peine. L'utilisation ressemble à ceci:
Je crains que je ne pense pas que ce que vous voulez faire est possible. Les commandes ne sont pas délégués, de sorte que vous ne pouvez pas écrire une commande à un événement. Je pense que votre meilleure option est de gérer la
Button.LostFocus
événement, puis exécutez manuellement la commande à partir du gestionnaire.Il n'y a rien de mal à mettre le code dans le code-behind, lors de l'utilisation de MVVM, il est juste mieux pour réduire au minimum et d'observer le code pour afficher des tâches. Je dirais que c'est le code de la vue liés, de sorte qu'il serait à trouver pour mettre le code dans le code derrière.
Commande
CommandParameter
https://github.com/JonghoL/EventBindingMarkup