¿Cómo puedo manejar los comandos enrutados WPF en mi ViewModel sin código subyacente?

Según mi comprensión de MVVM, es una buena práctica manejar comandos enrutados directamente en ViewModel.

Cuando un comando enrutado se define en un ViewModel como un RelayCommand (o DelegateCommand), es fácil enlazar directamente al comando de esta manera: Command = {Binding MyViewModelDefinedCommand}.

En realidad, para el comando enrutado que se define fuera de mi ViewModel, manejo esos comandos en el Código detrás de la Vista y reenvío las llamadas al ViewModel. Pero me resulta incómodo tener que hacerlo. Va en contra de las buenas prácticas recomendadas de MVVM. Creo que debería haber una forma más elegante de lograr el trabajo.

¿Cómo puedo manejar un "System.Windows.Input.ApplicationCommands" o cualquier comando enrutado definido fuera del Viewmodel directamente en ViewModel. En otras palabras, para el comando definido fuera del ViewModel, ¿cómo puedo manejar la devolución de llamada CommandBinding "CommandExecute" y / o "CommandCanExecute" directamente al ViewModel? ¿Es eso posible o no? Si es así, ¿cómo? Si no, ¿por qué?

Respuestas a la pregunta(3)

Su respuesta a la pregunta