Information
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

RoutedCommand.Execute Method

Executes the RoutedCommand on the current command target.

Namespace: System.Windows.Input
Assembly: PresentationCore (in presentationcore.dll)

public void Execute (
	Object parameter,
	IInputElement target
)
public void Execute (
	Object parameter, 
	IInputElement target
)
public function Execute (
	parameter : Object, 
	target : IInputElement
)
You cannot use methods in XAML.

Parameters

parameter

User defined parameter to be passed to the handler.

target

Element at which to being looking for command handlers.

Exception typeCondition

InvalidOperationException

target is not a UIElement or ContentElement.

The actual logic that executes the RoutedCommand is not contained in the Execute methods. Execute raises the PreviewExecuted and Executed events which tunnel and bubble through element tree looking for a object with a CommandBinding. If a CommandBinding for that RoutedCommand is found, then the ExecutedRoutedEventHandler attached to CommandBinding is called. These handlers supply the programming logic that performs the RoutedCommand.

The PreviewExecuted and Executed events are raised on the CommandTarget. If the CommandTarget is not set on the ICommandSource, the PreviewExecuted and Executed events are raised on the element with keyboard focus.

The following example is from a custom implementation of ICommandSource sample. The full sample subclasses the Slider class and implements ICommandSource to create a slider that invokes a command when its value property is changed. For the complete sample, see Implement ICommand Source Sample.

This.Command in this example is the Command property on the ICommandSource. If the command is not null, the command is cast to a RoutedCommand. If it is a RoutedCommand, then the Execute method is called passing the CommandTarget and the CommandParameter. If the command is not a RoutedCommand, it is cast to an ICommand and the Execute method is called passing the CommandParameter.

// If Command is defined, moving the slider will invoke the command;
// Otherwise, the slider will behave normally.
protected override void OnValueChanged(double oldValue, double newValue)
{
    base.OnValueChanged(oldValue, newValue);

    if (this.Command != null)
    {
        RoutedCommand command = Command as RoutedCommand;

        if (command != null)
        {
            command.Execute(CommandParameter, CommandTarget);
        }
        else
        {
            ((ICommand)Command).Execute(CommandParameter);
        }
    }
}

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

Show:
© 2014 Microsoft