The DelegateCommand allows delegating the commanding logic instead of requiring a handler in the code behind. It uses a delegate as the method of invoking a target handling method. Like
public class DelegateCommand<T> : ICommand
{
public DelegateCommand(Action<T> executeMethod, Func<T, bool> canExecuteMethod)
{
…
this.executeMethod = executeMethod;
this.canExecuteMethod = canExecuteMethod;
…
}
…
}