This documentation is archived and is not being maintained.

RoutedUICommand Class

Defines an ICommand that is routed through the element tree and contains a text property.


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

[TypeConverterAttribute("System.Windows.Input.CommandConverter, PresentationFramework, Version=, Culture=neutral, PublicKeyToken=31bf3856ad364e35, Custom=null")]
public class RoutedUICommand : RoutedCommand
<RoutedUICommand .../>
<object property="predefinedCommandName"/>
- or -
<object property="predefinedClassName.predefinedCommandName"/>
- or -
<object property="{x:Static customClassName.customCommandName}"/>

XAML Values


One of the predefined command classes.


One of the predefined commands.


The xlmns prefix that maps customClassName.customCommandName to the .NET class. For more information, see XAML Namespaces and Namespace Mapping for WPF XAML.


A custom class that contains the custom command.


A custom command.

The RoutedUICommand type exposes the following members.

Public methodRoutedUICommand()Initializes a new instance of the RoutedUICommand class.
Public methodRoutedUICommand(String, String, Type)Initializes a new instance of the RoutedUICommand class, using the specified descriptive text, declared name, and owner type.
Public methodRoutedUICommand(String, String, Type, InputGestureCollection)Initializes a new instance of the RoutedUICommand class, using the specified descriptive text, declared name, owner type, and input gestures.

Public propertyInputGesturesGets the collection of InputGesture objects that are associated with this command. (Inherited from RoutedCommand.)
Public propertyNameGets the name of the command. (Inherited from RoutedCommand.)
Public propertyOwnerTypeGets the type that is registered with the command. (Inherited from RoutedCommand.)
Public propertyTextGets or sets the text that describes this command.

Public methodCanExecuteDetermines whether this RoutedCommand can execute in its current state. (Inherited from RoutedCommand.)
Public methodEquals(Object)Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Public methodExecuteExecutes the RoutedCommand on the current command target. (Inherited from RoutedCommand.)
Protected methodFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public methodGetHashCodeServes as a hash function for a particular type. (Inherited from Object.)
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Protected methodMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Public methodToStringReturns a string that represents the current object. (Inherited from Object.)

Public eventCanExecuteChangedOccurs when changes to the command source are detected by the command manager. These changes often affect whether the command should execute on the current command target. (Inherited from RoutedCommand.)

Explicit interface implemetationPrivate methodICommand.CanExecuteFor a description of this members, see CanExecute. (Inherited from RoutedCommand.)
Explicit interface implemetationPrivate methodICommand.ExecuteFor a description of this members, see Execute. (Inherited from RoutedCommand.)

The difference between a RoutedUICommand and RoutedCommand is that RoutedUICommand includes a Text property.

The Execute and CanExecute methods on a RoutedCommand do not contain the command logic for the command, as is the case with a typical ICommand. These methods raise events that traverse the element tree looking for an object with a CommandBinding. The event handlers attached to the CommandBinding contain the command logic.

The Execute method raises the PreviewExecuted and Executed events. The CanExecute method raises the PreviewCanExecute and CanExecute events.

.NET Framework

Supported in: 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.