Предполагая, что вы привязываете свой Xaml следующим образом:
<button Command="{Binding BackClickCommand}" />
Все, что вам нужно сделать, это напомнить интерфейс, чтобы снова проверить привязку:
enabled = false;
PropertyChanged(this, new PropertyChangedEventArgs("BackClickCommand"));
Это приведет к тому, что пользовательский интерфейс снова проверит BackClickCommand
и увидит, что он изменен, тем самым отключив кнопку.
См. MSDN для пример полного кода.
Изменить: это будет возможный фрагмент кода:
int step = 2;
public RelayCommand BackClickCommand
{
get
{
if (_backClickCommand == null)
{
_backClickCommand = new RelayCommand(() =>
{
step--;
PropertyChanged(this, new PropertyChangedEventArgs("BackClickCommand"));
},() => this.CanExecute());
}
return _backClickCommand;
}
}
public bool CanExecute()
{
return this.step > 0;
}