Export (0) Print
Expand All

ICommand Interface

Defines a command.

Namespace:  System.Windows.Input
Assemblies:   System (in System.dll)
  System.ObjectModel (in System.ObjectModel.dll)

XMLNS for XAML: Not mapped to an xmlns.

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

XAML Values

predefinedClassName

One of the predefined command classes.

predefinedCommandName

One of the predefined commands.

customClassName

A custom class that contains the custom command. Custom classes generally require an xlmns prefix mapping; see XAML Namespaces and Namespace Mapping for WPF XAML.

customCommandName

A custom command.

The ICommand type exposes the following members.

  NameDescription
Public methodSupported by Portable Class LibrarySupported in .NET for Windows Store appsCanExecuteDefines the method that determines whether the command can execute in its current state.
Public methodSupported by Portable Class LibrarySupported in .NET for Windows Store appsExecuteDefines the method to be called when the command is invoked.
Top

  NameDescription
Public eventSupported by Portable Class LibrarySupported in .NET for Windows Store appsCanExecuteChangedOccurs when changes occur that affect whether or not the command should execute.
Top

RoutedCommand and RoutedUICommand are two implementations of the ICommand interface in Windows Presentation Foundation (WPF).

ICommand in Windows Runtime apps

The ICommand interface is the code contract for commands that are written in .NET for Windows Runtime apps. These commands provide the commanding behavior for UI elements such as a Windows Runtime XAML Button and in particular an AppBarButton. If you're defining commands for Windows Runtime apps you use basically the same techniques you'd use for defining commands for a .NET app. Implement the command by defining a class that implements ICommand and specifically implement the Execute method.

XAML for Windows Runtime does not support x:Static, so don't attempt to use the x:Static markup extension if the command is used from Windows Runtime XAML. Also, the Windows Runtime does not have any predefined command libraries, so the XAML syntax shown here doesn't really apply for the case where you're implementing the interface and defining the command for Windows Runtime usage.

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Portable Class Library

Supported in: Portable Class Library

.NET for Windows Store apps

Supported in: Windows 8

Supported in: Windows Phone 8.1

Supported in: Windows Phone Silverlight 8.1

Supported in: Windows Phone Silverlight 8

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

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

Show:
© 2014 Microsoft