c# – WinRT中什么替代CommandManager?

我正在开始使用Metro风格的应用程序(我知道我们不应该称之为Metro,但我永远不会记得应该调用什么…),而且我正在实现一个用于MVVM的DelegateCommand类。在WPF中,ICommand.CanExecuteChanged事件通常是这样执行的:

    public event EventHandler CanExecuteChanged
    {
        add { CommandManager.RequerySuggested += value; }
        remove { CommandManager.RequerySuggested -= value; }
    }

但是CommandManager类在WinRT中不存在…还有别的东西吗?或者我们应该自己明确地触发这个事件?

最佳答案
在WinRT中,您必须手动更新/提升CanExecuteChanged。没有CommandManager在全球做这个。你可以把这看作是脖子上的一种痛苦,或者说现在CanExecute不是不断地被叫出来,这是一个严重的表现。这意味着你必须考虑级联的属性变化,在你没有必要之前。但这是怎么回事。手册。

public void RaiseCanExecuteChanged()
{
    if (CanExecuteChanged != null)
        CanExecuteChanged(this, EventArgs.Empty);
}

转载注明原文:c# – WinRT中什么替代CommandManager? - 代码日志