How do I programmatically fire a command
Assuming there is someCommand
with commandArgs
:
if (someCommand.CanExecute(commandArgs))
{
someCommand.Execute(commandArgs);
}
Try calling the Execute
method.
If you're using RoutedUICommand
's Execute and CanExecute, be sure to pass in a valid target so that the correct CommandBinding
can be found.
Also, if your command's handlers do not modify View objects directly, consider using Kent Boogaart's DelegateCommand. Using delegate commands will move the business logic to the ViewModel, which is nice, and they're especially handy if you need execute commands directly from code and you don't have access to the View (or a View object from which you can bubble to your CommandBindings
).