What replaces CommandManager in WinRT?
c#, icommand, windows-8, windows-runtime
Solution
In WinRT, you must update/raise CanExecuteChanged manually. There is no CommandManager to do this globally. You could look at this as a pain in the neck, or a serious performance boost now that CanExecute is not called constantly. It does mean you have to think about cascading property changes where before you did not have to. But this is how it is. Manual.
public void RaiseCanExecuteChanged()
{
if (CanExecuteChanged != null)
CanExecuteChanged(this, EventArgs.Empty);
}
Problem
I'm getting started with Metro style applications (I know we're not supposed to call it Metro, but I can never remember what it's supposed to be called...), and I'm implementing a `DelegateCommand` class for use in MVVM. In WPF, the `ICommand.CanExecuteChanged` event is typically implemented like this: ``` public event EventHandler CanExecuteChanged { add { CommandManager.RequerySuggested += value; } remove { CommandManager.RequerySuggested -= value; } } ``` But the `CommandManager` class does not exist in WinRT... Is there something else instead? Or are we supposed to explicitly trigger this event ourselves?