Могу ли я добавить еще одно условие в предикат canExecute? - PullRequest
0 голосов
/ 25 декабря 2010

Я использую RelayCommand Джоша Смита в своем приложении WPF MVVM.

У меня есть ViewModel. Внутри у меня есть ссылка на другую ViewModel.

В дочернем ViewModel есть свойство типа ICommand.

Могу ли я добавить в предикат "CanExecute" в родительском ViewModel еще одно условие?

1 Ответ

0 голосов
/ 25 декабря 2010

У вас есть как минимум два варианта:

  1. Вы можете предоставить новую ICommand из родительской модели представления, которая использует дочернюю модель представления в реализации CanExecute новой команды.
  2. Вы можете добавить ссылку на родительскую модель представления в дочернем объекте и вызвать метод родительского объекта в реализации дочернего объекта CanExecute.

Второй вариант может выглядеть примерно так у ребенка:

SampleCommand = new RelayCommand(..., param => ChildSampleCanExecute() && parentViewModel.ParentSampleCanExecute());
...