У меня есть команда1, которая открывает окно, которое позволяет пользователю добавлять элемент. После выполнения команды 1 я изменю CanExecute, поэтому кнопка в графическом интерфейсе станет серым.Уведомлять CanExecute команды 1 после выполнения команды2
После этого пользователь может добавить/закрыть (command2) элемент. После того, как пользователь добавит/закрыл, я хотел бы «не серого» кнопки, чтобы пользователь мог добавить другой элемент.
Проблема в том, что я не знаю, как уведомить command1, тогда он может снова выполнить сам. Я попробовал CommandManager.InvalidateRequerySposed(); при выполнении функции command2, но это не вызовет CanExecute из команды1.
Есть ли способ «не серого» кнопки, чтобы его можно было использовать снова?
Если что-то неясно, спросите, и я предоставлю дополнительную информацию.
Вот код command1:
public class AddNewFilmWindowCommand : CommandBase<ViewModelCollection<FilmModel>>
{
public override event EventHandler CanExecuteChanged;
public AddNewFilmWindowCommand(ViewModelCollection<FilmModel> viewModelCollection)
: base(viewModelCollection)
{
}
public override bool CanExecute(object parameter)
{
if (this.ViewModel.NewItem == null)
{
return true;
}
else
{
return false;
}
}
public override void Execute(object item)
{
this.ViewModel.NewItem = new FilmModel();
var onCanExecuteChanged = this.CanExecuteChanged;
if (onCanExecuteChanged != null)
{
onCanExecuteChanged(this, new EventArgs());
}
}
}
command2 это почти то же самое, но выполнить это, конечно, разные.
спасибо.