Si nous ne pouvons pas lier une commande MouseBinding, que sommes-nous censés faire?
-
07-07-2019 - |
Question
J'aimerais pouvoir utiliser un MouseBinding
classique pour capturer un événement CTRL-Click sur mon TextBlock
. Malheureusement, la propriété Command
n'est pas une propriété de dépendance et j'utilise MVVM. Je ne peux donc pas la lier à mon modèle de vue.
Comment Microsoft aurait-il pu omettre cette fonctionnalité de base? Existe-t-il des moyens simples de détecter les clics CTRL et de les lier à une commande dans mon modèle de vue?
La solution
Vous pouvez toujours consulter Commande associée. Comportements .
Autres conseils
À l’origine, je pensais faire référence à l’utilisation du membre InputBindings
de TextBlock
.
Dans .NET 4, InputsBinding
hérite désormais de Freezable
. La propriété Command
est donc maintenant la propriété de dépendance (voir Prise en charge de la liaison dans InputBindings ), résolvant le problème de la liaison.
Si vous êtes bloqué avec .NET 3.5, vous pouvez créer des propriétés attachées pour tout type d’événement souhaité. Dans votre fonction OnCommandChanged
, ajoutez le gestionnaire d'événements et filtrez en fonction de modificateurs (comme la clé Control
ou le ClickCount
) dans votre PropertyChangedCallback.
méthode.