L'exécution des viewmodels de commande sur l'entrée dans la zone de texte
Je veux exécuter une commande dans mon viewmodel lorsque l'utilisateur appuie sur entrée dans une zone de texte.
La commande fonctionne quand il est lié à un bouton.
<Button Content="Add" Command="{Binding Path=AddCommand}" />
Mais je ne peux pas l'amener à travailler à partir de la zone de texte.
J'ai essayé une Inputbinding, mais il ne fonctionne pas.
<TextBox.InputBindings>
<KeyBinding Command="{Binding Path=AddCommand}" Key="Enter"/>
</TextBox.InputBindings>
J'ai aussi essayé de définir le travail avec le bouton par défaut, mais il n'a pas exécuté que lorsque la touche entrée est pressée.
Merci pour votre aide.
- Voulez-vous s'il vous plaît changer la accepté de répondre? Je ne peux pas supprimer le mien alors qu'il est accepté.
Vous devez vous connecter pour publier un commentaire.
Je sais je suis en retard à la fête, mais j'ai eu que cela fonctionne pour moi. Essayez d'utiliser
Key="Return"
au lieu deKey="Enter"
Ici est l'exemple complet
Assurez-vous d'utiliser
UpdateSourceTrigger=PropertyChanged
dans votre liaison, sinon la propriété ne sera pas mis à jour jusqu'à ce que le focus est perdu, et en appuyant sur enter ne pas perdre le focus...Espère que cela a été utile!
RegisterAttached
Vous avez probablement pas fait la commande d'une propriété, mais un champ. Il ne fonctionne qu'à se lier à des propriétés. Changer votre AddCommand à une propriété et il va fonctionner. (Votre XAML fonctionne très bien pour moi avec une propriété au lieu d'un champ de commande -> pas besoin de tout le code derrière!)
<KeyBinding Command="{Binding Path=AddCommand}" Key="Enter"/>
a très bien fonctionné pour moi aussi!Voici un joint de propriété de dépendance que j'ai créé pour cela. Il a l'avantage de vous assurer que votre texte de liaison est mis à jour vers le Dernier avant la commande des feux (utile pour silverlight qui ne prend pas en charge la propriété a changé de mise à jour de la source de déclenchement).
Vous l'utiliser comme ceci:
Vous avez besoin de définir le Geste à la place de la Clé de la propriété du Raccourci clavier:
En plus de Mark Heath's réponse, j'ai pris la classe d'une étape par la mise en œuvre de Paramètre de Commande de la propriété attachée de cette façon;
Utilisation: