2 Stimmen

Sollte ich RaiseCanExecuteChanged in Prism' DelegateCommand aufrufen?

Ich habe eine CanExecute-Methode für den DelegateCommand geschrieben. CanExecute wird nicht neu ausgewertet wie andere Befehle, die von einer CommandBase erben, die wie folgt aussieht.

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);
}

Kann ich den Prism DelegateCommand so arbeiten lassen, dass CanExecute bei Bedarf automatisch neu bewertet wird, oder sollte ich RaiseCanExecuteChanged() bei Bedarf manuell aufrufen?

1voto

PVitt Punkte 11132

Wie sollte der Befehl oder der Befehlsmanager wissen, dass sich sein Ausführungsstatus geändert hat? Damit sie das wissen, müssen Sie dies über die Methode RaiseCanExecuteChanged signalisieren.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X