2

我为 DelegateCommand 编写了一个 CanExecute 方法。CanExecute 没有被重新评估为从 CommandBase 继承的其他命令,看起来像这样。

public abstract class CommandBase : ICommand
{
    public event EventHandler CanExecuteChanged
    {
        add { CommandManager.RequerySuggested += value; }
        remove { CommandManager.RequerySuggested -= value; }
    }

    public void RaiseCanExecuteChanged()
    {
        CommandManager.InvalidateRequerySuggested();
    }

    public virtual bool CanExecute(object parameter)
    {
        return true;
    }

    public abstract void Execute(object parameter);
}

我可以让 Prism DelegateCommand 像这样工作,以便在适当的时候自动重新评估 CanExecute,还是应该在需要时手动调用 RaiseCanExecuteChanged()?

4

1 回答 1

1

命令或命令管理器应该如何知道它的执行状态发生了变化?要让他们知道,您需要通过 RaiseCanExecuteChanged 方法发出信号。

于 2011-06-09T05:38:44.127 回答