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 に答える