Bonjour,
Je voulais tester dernièrement le développement d'application Windows 8 style Metro avec MVVM.
J'utilisais auparavant pour mes développements WPF (framework 4.0) la classe suivante pour les commandes :
Seulement voilà, l'implémentation de CanExecuteChanged a changé avec le framework 4.5 et cette partie-là me pose problème :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 public class RelayCommand : ICommand { readonly Action<object> _execute; readonly Predicate<object> _canExecute; public RelayCommand(Action<object> execute) : this(execute, null) { } public RelayCommand(Action<object> execute, Predicate<object> canExecute) { if (execute == null) throw new ArgumentNullException("execute"); _execute = execute; _canExecute = canExecute; } [DebuggerStepThrough] public bool CanExecute(object parameter) { return _canExecute == null ? true : _canExecute(parameter); } public event EventHandler CanExecuteChanged { add { CommandManager.RequerySuggested += value; } remove { CommandManager.RequerySuggested -= value; } } public void Execute(object parameter) { _execute(parameter); } }
En effet, CommandManager ne peut plus être utilisé. J'ai réussi à faire en sorte que mes commandes puissent être appelées selon mes conditions mais l'état visuel de mes boutons ne changent pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public event EventHandler CanExecuteChanged { add { CommandManager.RequerySuggested += value; } remove { CommandManager.RequerySuggested -= value; } }
Quelqu'un aurait une solution ?
Merci
Partager