0
kicks
An ICommand with IsEnabled
ICommand is a simple interface with three members – Execute, CanExecute, and CanExecuteChanged. You can write your own implementations of that interface, one for each command, but that gets a bit heavyweight. So there are several implementations of ICommand that are pluggable and re-usable, like DelegateCommand, RelayCommand, and RoutedCommand. This demonstrates another approach.