Exportar (0) Imprimir
Expandir todo
Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original.
Traducción
Original

RoutedCommand (Clase)

Define un comando que implementa ICommand y se enruta a través del árbol de elementos.

Espacio de nombres:  System.Windows.Input
Ensamblado:  PresentationCore (en PresentationCore.dll)
XMLNS para XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

[TypeConverterAttribute("System.Windows.Input.CommandConverter, PresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, Custom=null")]
public class RoutedCommand : ICommand
<objeto propiedad="predefinedCommandName"/>‑O bien-<objeto propiedad="predefinedClassName.predefinedCommandName"/>‑O bien-<objeto propiedad="{x:Static customClassName.customCommandName}"/>

Valores XAML

predefinedClassName

Una de las clases de comandos predefinidos.

predefinedCommandName

Uno de los comandos predefinidos.

customClassName

Clase personalizada que contiene el comando personalizado. Las clases personalizadas generalmente requieren una asignación de prefijo xlmns; vea Espacios de nombres y asignación de espacios de nombres XAML para WPF.

customCommandName

Un comando personalizado.

El tipo RoutedCommand expone los siguientes miembros.

  NombreDescripción
Método públicoRoutedCommand()Inicializa una nueva instancia de la clase RoutedCommand.
Método públicoRoutedCommand(String, Type)Inicializa una nueva instancia de la clase RoutedCommand con el nombre y el tipo de propietario especificados.
Método públicoRoutedCommand(String, Type, InputGestureCollection)Inicializa una nueva instancia de la clase RoutedCommand con el nombre, el tipo de propietario y la colección de movimientos especificados.
Arriba

  NombreDescripción
Propiedad públicaInputGesturesObtiene la colección de objetos InputGesture asociados a este comando.
Propiedad públicaNameObtiene el nombre del comando.
Propiedad públicaOwnerTypeObtiene el tipo que se registra con el comando.
Arriba

  NombreDescripción
Método públicoCanExecuteDetermina si este RoutedCommand puede ejecutarse en su estado actual.
Método públicoEquals(Object)Determina si el objeto Object especificado es igual al objeto Object actual. (Se hereda de Object).
Método públicoExecuteEjecuta RoutedCommand en el destino de comando actual.
Método protegidoFinalize Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por la recolección de elementos no utilizados. (Se hereda de Object).
Método públicoGetHashCodeActúa como función hash para un tipo concreto. (Se hereda de Object).
Método públicoGetType Obtiene el Typede la instancia actual. (Se hereda de Object).
Método protegidoMemberwiseClone Crea una copia superficial del Object actual. (Se hereda de Object).
Método públicoToString Retorna una cadena que representa al objeto actual. (Se hereda de Object).
Arriba

  NombreDescripción
Evento públicoCanExecuteChangedSe produce cuando el administrador del comando detecta cambios en el origen del comando. Normalmente, estos cambios afectan al hecho de que el comando se ejecute en el destino de comando actual.
Arriba

  NombreDescripción
Implementación explícita de interfacesMétodo privadoICommand.CanExecutePara obtener una descripción de este miembro, vea CanExecute.
Implementación explícita de interfacesMétodo privadoICommand.ExecutePara obtener una descripción de este miembro, vea Execute.
Arriba

Los métodos Execute y CanExecute en RoutedCommand no contienen la lógica de la aplicación para el comando, como es el caso de una interfaz ICommand típica, sino que estos métodos provocan eventos que atraviesan el árbol de elementos en busca de un objeto con CommandBinding. Los controladores de eventos asociados a CommandBinding contienen la lógica de comandos.

El método Execute genera los eventos PreviewExecuted y Executed. El método CanExecute genera los eventos PreviewCanExecute y CanExecute.

This example shows how to create a custom RoutedCommand and how to implement the custom command by creating a ExecutedRoutedEventHandler and a CanExecuteRoutedEventHandler and attaching them to a CommandBinding. For more information on commanding, see the Información general sobre comandos.

The first step in creating a RoutedCommand is defining the command and instantiating it.


public static RoutedCommand CustomRoutedCommand = new RoutedCommand();


In order to use the command in an application, event handlers which define what the command does must be created


private void ExecutedCustomCommand(object sender,
    ExecutedRoutedEventArgs e)
{
    MessageBox.Show("Custom Command Executed");
}



// CanExecuteRoutedEventHandler that only returns true if
// the source is a control.
private void CanExecuteCustomCommand(object sender, 
    CanExecuteRoutedEventArgs e)
{
    Control target = e.Source as Control;

    if(target != null)
    {
        e.CanExecute = true;
    }
    else
    {
        e.CanExecute = false;
    }
}


Next, a CommandBinding is created which associates the command with the event handlers. The CommandBinding is created on a specific object. This object defines the scope of the CommandBinding in the element tree


<Window x:Class="SDKSamples.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:custom="clr-namespace:SDKSamples"
    Height="600" Width="800"
    >
  <Window.CommandBindings>
    <CommandBinding Command="{x:Static custom:Window1.CustomRoutedCommand}"
                    Executed="ExecutedCustomCommand"
                    CanExecute="CanExecuteCustomCommand" />
  </Window.CommandBindings>



CommandBinding customCommandBinding = new CommandBinding(
    CustomRoutedCommand, ExecutedCustomCommand, CanExecuteCustomCommand);

// attach CommandBinding to root window
this.CommandBindings.Add(customCommandBinding);


The final step is invoking the command. One way to invoke a command is to associate it with a ICommandSource, such as a Button.


<StackPanel>
  <Button Command="{x:Static custom:Window1.CustomRoutedCommand}"
          Content="CustomRoutedCommand"/>
</StackPanel>



// create the ui
StackPanel CustomCommandStackPanel = new StackPanel();
Button CustomCommandButton = new Button();
CustomCommandStackPanel.Children.Add(CustomCommandButton);

CustomCommandButton.Command = CustomRoutedCommand;


When the Button is clicked, the Execute method on the custom RoutedCommand is called. The RoutedCommand raises the PreviewExecuted and Executed routed events. These events traverse the element tree looking for a CommandBinding for this particular command. If a CommandBinding is found, the ExecutedRoutedEventHandler associated with CommandBinding is called.

.NET Framework

Compatible con: 4, 3.5, 3.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft