ICommand Interface
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Defines a command.
public interface class ICommand
public interface ICommand
[System.ComponentModel.TypeConverter("System.Windows.Input.CommandConverter, PresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, Custom=null")]
public interface ICommand
[System.ComponentModel.TypeConverter("System.Windows.Input.CommandConverter, PresentationFramework, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, Custom=null")]
public interface ICommand
type ICommand = interface
[<System.ComponentModel.TypeConverter("System.Windows.Input.CommandConverter, PresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, Custom=null")>]
type ICommand = interface
[<System.ComponentModel.TypeConverter("System.Windows.Input.CommandConverter, PresentationFramework, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, Custom=null")>]
type ICommand = interface
Public Interface ICommand
- Derived
- Attributes
Remarks
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.
XAML attribute usage
<object-property="predefined-command-name"/>
-or-
<object-property="predefined-class-name.predefined-command-name"/>
-or-
<object-property="{custom-class-name.custom-command-name}"/>
XAML values
predefined-class-name
One of the predefined command classes.
predefined-command-name
One of the predefined commands.
custom-class-name
A custom class that contains the custom command. Custom classes generally require an xlmns
prefix mapping. For more information, see XAML Namespaces and Namespace Mapping for WPF XAML.
custom-command-name
A custom command.
Methods
CanExecute(Object) |
Determines whether the command can execute in its current state. |
Execute(Object) |
Defines the method to be called when the command is invoked. |
Events
CanExecuteChanged |
Occurs when changes take place that affect whether or not the command should execute. |