Должен ли я вызвать RaiseCanExecuteChanged в Prism 'DelegateCommand? - PullRequest
2 голосов
/ 08 июня 2011

Я написал метод CanExecute для DelegateCommand.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 () при необходимости?

1 Ответ

1 голос
/ 09 июня 2011

Как команда или менеджер команд могут узнать, что ее состояние выполнения изменилось? Чтобы они знали об этом, вам нужно сообщить об этом через метод RaiseCanExecuteChanged.

...