¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

CommandBinding (Clase)

Enlaza RoutedCommand controladores de eventos que implementan el comando.

System.Object
  System.Windows.Input.CommandBinding

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

public class CommandBinding
<CommandBinding .../>

El tipo CommandBinding expone los siguientes miembros.

  NombreDescripción
Método públicoCommandBinding()Inicializa una nueva instancia de la clase de CommandBinding .
Método públicoCommandBinding(ICommand)Inicializa una nueva instancia de la clase de CommandBinding mediante ICommandespecificado.
Método públicoCommandBinding(ICommand, ExecutedRoutedEventHandler)Inicializa una nueva instancia de la clase de CommandBinding mediante ICommand especificado y el controlador de eventos especificado de Executed .
Método públicoCommandBinding(ICommand, ExecutedRoutedEventHandler, CanExecuteRoutedEventHandler)Inicializa una nueva instancia de la clase de CommandBinding mediante ICommand especificado y Executed y controladores de eventos especificados de CanExecute .
Arriba

  NombreDescripción
Propiedad públicaCommandObtiene o establece ICommand asociado a este CommandBinding.
Arriba

  NombreDescripción
Método públicoEquals(Object)Determina si el objeto especificado es igual al objeto actual. (Se hereda de Object).
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úblicoGetHashCode Sirve como una función hash para un tipo en particular. (Se hereda de Object).
Método públicoGetType Obtiene el Type de 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úblicoCanExecuteSe produce cuando el comando asociado a este CommandBinding inicia una comprobación para determinar si el comando se puede ejecutar en el destino del comando.
Evento públicoExecutedSe produce cuando el comando asociado a este CommandBinding se ejecuta.
Evento públicoPreviewCanExecuteSe produce cuando el comando asociado a este CommandBinding inicia una comprobación para determinar si el comando se puede ejecutar en el destino de comando actual.
Evento públicoPreviewExecutedSe produce cuando el comando asociado a este CommandBinding se ejecuta.
Arriba

CommandBinding asocia un comando a PreviewExecuted/Executed y PreviewCanExecuteo los eventos deCanExecute que implementan y determinar el estado del comando.

Cuando el método de Execute o de CanExecute de RoutedCommand se denomina, PreviewExecuted/Executed o eventos de PreviewCanExecute/deCanExecute se genera en el destino del comando. Si el destino de comando tiene CommandBinding para el comando, se llama a los controladores adecuados. Si el destino de comando no tiene CommandBinding para el comando, los eventos se enrutan a través del árbol de elementos hasta que se encuentra un elemento que tiene CommandBinding .

CommandBinding restringido el uso con ICommand que no es RoutedCommand. Esto es porque CommandBinding enlaza el comando a ExecutedRoutedEventHandler y CanExecuteRoutedEventHandler que escuchan a Executed y eventos enrutados CanExecute que se generan cuando el método de Execute y de CanExecute de RoutedCommand se denomina.

En el siguiente ejemplo se muestra cómo utilizar comandos en Windows Presentation Foundation (WPF). En el ejemplo se muestra cómo asociar un comando RoutedCommand a un control Button, crear un objeto CommandBindingy crear los controladores de eventos que implementan RoutedCommand. Para obtener más información sobre los comandos, vea Información general sobre comandos.

En la primera sección de código se crea la interfaz de usuario (UI), que está compuesta de un control Button y un control StackPanel, y se crea también un objeto CommandBinding que asocia los controladores de comando a un comando RoutedCommand.

La propiedad Command de Button se asocia al comando Close.

El objeto CommandBinding se agrega al objeto CommandBindingCollection del objeto Window raíz. Los controladores de eventos Executed y CanExecute se asocian a este enlace y al comando Close.

Sin CommandBinding no hay ninguna lógica de comando, únicamente un mecanismo para invocar el comando. Cuando se hace clic en Button, se provoca el evento PreviewExecuted asociado al comando RoutedEvent en el destino del comando, seguido por el evento Executed asociado al comando RoutedEvent. Estos eventos recorren el árbol de elementos en busca de un enlace CommandBinding para ese comando concreto. Cabe destacar que, debido a que RoutedEvent tuneliza y traspasa el árbol de elementos, se deben extremar las precauciones al elegir el lugar donde se coloca CommandBinding. Si CommandBinding está en un nodo relacionado con el destino del comando o en otro nodo que no está en la ruta de RoutedEvent, no se tendrá acceso a CommandBinding.


<Window x:Class="WCSamples.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="CloseCommand"
    Name="RootWindow"
    >
  <Window.CommandBindings>
    <CommandBinding Command="ApplicationCommands.Close"
                    Executed="CloseCommandHandler"
                    CanExecute="CanExecuteHandler"
                    />
  </Window.CommandBindings>
  <StackPanel Name="MainStackPanel">
    <Button Command="ApplicationCommands.Close" 
            Content="Close File" />
  </StackPanel>
</Window>



			' Create ui elements.
			Dim CloseCmdStackPanel As New StackPanel()
			Dim CloseCmdButton As New Button()
			CloseCmdStackPanel.Children.Add(CloseCmdButton)

			' Set Button's properties.
			CloseCmdButton.Content = "Close File"
			CloseCmdButton.Command = ApplicationCommands.Close

			' Create the CommandBinding.
			Dim CloseCommandBinding As New CommandBinding(ApplicationCommands.Close, AddressOf CloseCommandHandler, AddressOf CanExecuteHandler)

			' Add the CommandBinding to the root Window.
			RootWindow.CommandBindings.Add(CloseCommandBinding)



// Create ui elements.
StackPanel CloseCmdStackPanel = new StackPanel();
Button CloseCmdButton = new Button();
CloseCmdStackPanel.Children.Add(CloseCmdButton);

// Set Button's properties.
CloseCmdButton.Content = "Close File";
CloseCmdButton.Command = ApplicationCommands.Close;

// Create the CommandBinding.
CommandBinding CloseCommandBinding = new CommandBinding(
    ApplicationCommands.Close, CloseCommandHandler, CanExecuteHandler);

// Add the CommandBinding to the root Window.
RootWindow.CommandBindings.Add(CloseCommandBinding);


En la sección de código siguiente se implementan los controladores de eventos Executed y CanExecute.

El controlador Executed llama a un método para cerrar el archivo abierto. El controlador CanExecute llama a un método para determinar si un archivo está abierto. Si hay un archivo abierto, la propiedad CanExecute se establece en true; de lo contrario, se establece en false.


// Executed event handler.
private void CloseCommandHandler(object sender, ExecutedRoutedEventArgs e)
{
    // Calls a method to close the file and release resources.
    CloseFile();
}

// CanExecute event handler.
private void CanExecuteHandler(object sender, CanExecuteRoutedEventArgs e)
{
    // Call a method to determine if there is a file open.
    // If there is a file open, then set CanExecute to true.
    if (IsFileOpened())
    {
        e.CanExecute = true;
    }
    // if there is not a file open, then set CanExecute to false.
    else
    {
        e.CanExecute = false;
    }
}


.NET Framework

Compatible con: 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.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 públicos static (Shared en Visual Basic) de este tipo son seguros para subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft