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 :

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);
        }
 
 
    }
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
public event EventHandler CanExecuteChanged
        {
            add { CommandManager.RequerySuggested += value; }
            remove { CommandManager.RequerySuggested -= value; }
        }
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.

Quelqu'un aurait une solution ?

Merci