У меня следующая проблема:CanExecute называется, но ничего не происходит
У меня есть команда
CancelNewFilmCommand
с кодом:
public override void Execute(object item)
{
this.ViewModel.NewItem = null;
this.ViewModel.ShowItem = null;
var onCanExecuteChanged = this.CanExecuteChanged;
if (onCanExecuteChanged != null)
{
onCanExecuteChanged(this, new EventArgs());
}
AddNewFilmWindow.CanExecute(this);
}
теперь в Execute из CancelNewFilmCommand Я вызываю CanExecute команды AddNewFilmWindow. Я даю ссылку на CancelNewFilmCommand при инициализации и настройке как частное поле. Проблема в том, что AddNewFilmWindow.CanExecute (this); ничего не делать. Мне нужно это, чтобы не серая кнопка, связанная с AddNewFilmWindowCommand, и просто не может понять, как это сделать.
Помогите пожалуйста? Я пытаюсь решить весь этот день без успеха:/
Вы не должны быть подклассы/реализации 'ICommand' или его производных для каждой команды. – Xiaoy312
Почему нет? : O У меня есть класс для каждой команды. И каждая команда реализует ICommand. – Shadowmak
Вы должны использовать общую реализацию ICommand и выставлять функции через 'Action' (для' Execute') и 'Func' (для 'CanExecute'). –
Xiaoy312