2009-09-15 8 views
0

J'essaie d'appeler une commande lorsque ma souris est sur un bouton bascule.Liaison Xaml aux commandes

J'ai le code suivant.

<Trigger Property="IsMouseOver" Value="True"> 
<Setter Property="Cursor" Value="Hand"></Setter> 
<Setter Property="Command" Value="{Binding Path=PushPinMouse}" /> 
</Trigger> 

Lorsque je passe la souris, l'aiguille s'affiche. Mais quand je passe la souris sur elle ne frappe pas ma méthode PushPinMouse .. Pourquoi est-ce?

Répondre

0

Il n'existe aucun moyen direct de le faire. Un modèle commun consiste à créer un comportement associé qui va écouter l'événement en question et déclencher un événement.

Une bonne mise en œuvre simple est démontrée dans ce CodeProject arcticle on the Cinch Framwork. Recherchez l'implémentation de la classe LifetimeEvent. Cela fournit un comportement joint qui souscrit à l'événement "Activated" sur un formulaire. Vous pouvez tout aussi facilement en faire un qui écoute les changements de IsMouseOver, et déclenche une commande.

Si vous avez écrit, vous pouvez alors faire:

<Button local:HoverBehavior.Hovering="{Binding MyCommand}" /> 

Vous pouvez utiliser la classe Behavior<T> dans le SDK Expression Blend pour mettre en œuvre ce d'une manière plus simple, aussi bien.

0

La définition de la propriété Command du bouton n'est pas censée déclencher une commande. Il est supposé spécifier une commande qui sera déclenchée quand le bouton est cliqué. MSDN says so tout de suite:

Obtient ou définit la commande à invoquer lorsque ce bouton est enfoncé.

+0

Y at-il une idée que je peux appeler une commande lorsque la souris survole? –

Questions connexes