Bonjour,
Via le lien suivant j'avais presque trouver solution a mon problème.
http://joyfulwpf.blogspot.com/2009/0...eybinding.html
Petite explication:
On m'impose d'utiliser le Framework .net 3.5 et j'ai besoin d’exécuter dans mon logiciel des Command à partir d'InputBindings: KeyBinding et/ou MouseBinding.
Hors, avec ce Framework, il est impossible de Bindé une Command (chose qui par d'ailleurs as été résolue pour le Framework .net 4.0)
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <MenuItem.InputBindings> <KeyBinding Modifiers="Control" Key="P" Command={Binding CommandPrint}" /> </MenuItem.InputBindings>
Afin d'éviter ce problème de compatibilité de Binding de Command sur un InputBinding en Framework 3.5, j'ai trouver sur le net une petite solution (le lien ci-dessus) qui utilise une class nommé CommandRéférence (à récupérer dans le sample) qui s'utilise de cette manière
Jusque la tout va bien.
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <Window.Resources> <coreView:CommandReference x:Key="print" Command="{Binding CommandPrint}" /> </Window.Resources> <MenuItem.InputBindings> <KeyBinding Modifiers="Control" Key="P" Command="{StaticResource print}" /> </MenuItem.InputBindings>
Sauf que mon problème, j'aimerai allez plus loin dans mon code et y attacher des CommandParameter, chose que cette classe ne permet pas.
De plus, pour la structure MVVM de mon logiciel, j'utilise les RelayCommand (certains me diront que se n'est pas le must mais moi cela me suffit).
Cette classe ne comprend pas les Execute et CanExecute que j'utilise avec ces RelayCommand
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part <Button Content="Print" Command="{Binding CommandDo}" CommenParameter="Print" />
Quelqu'un aurait-il de meilleur solution a suggérer pour prendre en compte au moins les CommandParameter?
Merci.
Partager