New to Telerik UI for WPFStart a free 30-day trial

DelegateCommand

Updated on Sep 15, 2025

The DelegateCommand class provides a simple ICommand implementation. It is located in the Telerik.Windows.Controls namespace and exposes the following methods and events:

  • CanExecute: Defines the method that determines whether the command can execute in its current state.
  • Execute: Defines the method to be called when the command is invoked.
  • InvalidateCanExecute: Raises the CanExecuteChanged event.
  • CanExecuteChanged: Raised when changes occur that affect whether the command should execute.

The DelegateCommand constructor has two overloads. The first accepts just a Delegate to execute as a parameter. The second one accepts the Delegate to execute as well as a Predicate that allows/bans the execution.

[C#] Example 1: DelegateCommand implementation in your ViewModel that accepts a delegate and a predicate

C#
	
    public class ViewModel
    {
        public bool CanExecuteCommand
        {
            get
            {
                return true;
            }
        }
        public ICommand CustomCommand { get; set; }

        public ViewModel()
        {
            this.CustomCommand = new DelegateCommand(onCustomCommandExecuted, canBeExecuted);
        }

        private bool canBeExecuted(object obj)
        {
            return this.CanExecuteCommand;
        }

        private void onCustomCommandExecuted(object obj)
        {
            MessageBox.Show("Custom Command Executed!");
        }
    }

[XAML] Example 2: Using the command in xaml

XAML
		
    <Grid>
        <Grid.DataContext>
            <my:ViewModel />
        </Grid.DataContext>

        <Button Command="{Binding CustomCommand}" Content="Execute command" VerticalAlignment="Bottom" />
    </Grid>

See Also

In this article
See Also
Not finding the help you need?
Contact Support