Как я могу обрабатывать команды WPF с маршрутизацией в моем ViewModel без кода?

Согласно моему пониманию MVVM, хорошей практикой является обработка перенаправленных команд непосредственно во ViewModel.

Когда перенаправленная команда определена во ViewModel как RelayCommand (или DelegateCommand), ее легко привязать непосредственно к команде, например так: Command = {Binding MyViewModelDefinedCommand}.

На самом деле, для перенаправленных команд, которые определены вне моей ViewModel, я обрабатываю эти команды в коде позади View и пересылаю вызовы ViewModel. Но мне неловко, что я должен это делать. Это идет вразрез с рекомендуемой передовой практикой MVVM. Я думаю, что должен быть более изящный способ достигнуть работы.

Как я могу обработать «System.Windows.Input.ApplicationCommands» или любую маршрутизируемую команду, определенную вне Viewmodel непосредственно в ViewModel. Другими словами, для команды, определенной вне ViewModel, как я могу напрямую обрабатывать обратный вызов CommandBinding «CommandExecute» и / или «CommandCanExecute» для ViewModel? Это возможно или нет? Если да, то как? Если нет, то почему?

Ответы на вопрос(3)

Ваш ответ на вопрос