Команда кнопки панели приложения и способ выполнения - PullRequest
2 голосов
/ 07 апреля 2011

У меня есть кнопка на панели приложения, которую я подключил к команде с помощью Prism, вот так:

<i:Interaction.Behaviors>
    <prismInteractivity:ApplicationBarButtonCommand ButtonText="save" CommandBinding="{Binding SaveCommand}" />
</i:Interaction.Behaviors>

Команда сохранения выглядит следующим образом:

SaveCommand = new RelayCommand( Save, CanSave );

Метод CanSave вызывается только при загрузке страницы. Затем кнопка отключается, потому что false возвращается в первый раз (из-за проверки).

Как я могу снова запустить метод CanSave, чтобы его можно было включить?

1 Ответ

3 голосов
/ 07 апреля 2011

Я понял это, посмотрев на источник в демонстрационном приложении TailSpin Prism.

Если вы хотите, чтобы он снова запускался, например, когда текст в текстовом поле изменился, просто вызовите:

SaveCommand.RaiseCanExecuteChanged();

Итак, в моем случае, когда установлено свойство Name, я хочу, чтобы оно снова запустилось.

public string Name
{
    get { return name; }
    set
    {
        name = value;
        RaisePropertyChanged( () => Name );
        SaveCommand.RaiseCanExecuteChanged();
    }
}
...