Je ne sais pas si c'est une bonne façon de travailler mais j'ai besoin de gérer toutes les frappes non gérées sur mon ViewModel donc mon idée était d'utiliser un comportement sur mon ShellView qui relaie tous touches non gérées à la ViewModel ..MVVM Gérer toutes les frappes non gérées sur ViewModel
Mais le problème est de savoir comment puis-je obtenir toutes les touches non manipulées?
Voici mon premier essai juste les attraper
Public Class ForwardKeyBehavior
Inherits Behavior(Of DependencyObject)
Protected Overrides Sub OnAttached()
Keyboard.AddKeyDownHandler(Me.AssociatedObject, AddressOf OnKeyPressed)
Keyboard.AddPreviewKeyDownHandler(Me.AssociatedObject, AddressOf OnPreviewKeyPressed)
MyBase.OnAttached()
End Sub
Protected Overrides Sub OnDetaching()
Keyboard.RemoveKeyDownHandler(Me.AssociatedObject, AddressOf OnKeyPressed)
MyBase.OnDetaching()
End Sub
Private Sub OnPreviewKeyPressed(ByVal sender As Object, ByVal e As KeyEventArgs)
End Sub
Private Sub OnKeyPressed(ByVal sender As Object, ByVal e As KeyEventArgs)
If (Not e.Handled) Then
Trace.Write(e.Key.ToString())
End If
End Sub
End Class
Mais il semble que e.Handled est toujours faux si ce que je manque i même si j'appuie sur une touche dans une zone de texte?
Vous devez définir e.Handled sur True dans les autres poignées manuellement. Ce n'est pas automatique. –
Même si la clé est gérée dans une zone de texte? – Peter