我为 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()?