title: How can I handle WPF routed commands in my ViewModel without code-behind?
body: <p>According to my understanding of MVVM, it is a good practice to handle routed commands directly in the ViewModel. </p>
  
  <p>When a routed command is defined in a ViewModel as a RelayCommand (or DelegateCommand), it is easy to bind directly to the command like this: Command={Binding MyViewModelDefinedCommand}.</p>
  
  <p>Actually, for routed command that are defined outside of my ViewModel, I handle those commands in the Code behind of the View and forward calls to the ViewModel. But I find it awkward that I have to do so. It goes against recommended MVVM good practices. I think that there should be a more elegant way to achieve the job.</p>
  
  <p>How can I handle a "System.Windows.Input.ApplicationCommands" or any routed command defined outside of the Viewmodel directly in the ViewModel.
  In other words, for command defined outside of the ViewModel, how can I handle CommandBinding callback "CommandExecute" and/or "CommandCanExecute" to the ViewModel directly?
  Is that possible or not? If yes how? If no, why?</p>