Команда ретрансляции не существует в WPF, это всего лишь внешний класс, который стал известен после того, как он был определен в этой статье MSDN . Вам нужно написать это самостоятельно, если вы хотите его использовать.
В противном случае вы можете воспользоваться командой Delegate из набора инструментов WPF здесь , которая имеет некоторые дополнительные функции по сравнению с кодом RelayCommand.
Ах, вопрос изменился, когда я печатал этот ответ. Предполагая, что вы используете RelayCommand, как определено выше, вам необходимо снабдить его одним или двумя делегатами, один из которых возвращает bool, который определяет, находится ли команда в допустимом состоянии для запуска, и второй, который ничего не возвращает и фактически выполняет команда. Если вы не предоставите делегата CanRun, команда будет считать, что он всегда находится в допустимом состоянии. Код, использованный в статье:
RelayCommand _saveCommand;
public ICommand SaveCommand
{
get
{
if (_saveCommand == null)
{
_saveCommand = new RelayCommand(param => this.Save(),
param => this.CanSave );
}
return _saveCommand;
}
}
Объявляет RelayCommand, который при запуске вызывает метод Save () и возвращает свойство CanSave в качестве теста на достоверность. Когда эта команда привязана к кнопке в WPF, свойство IsEnabled кнопки будет соответствовать свойству CanSave ViewModel, а когда кнопка нажата (при условии, что она включена), метод View () будет вызываться в ViewModel.