2010-09-20 32 views

Respuesta

5

En general, puede hacer casi lo mismo con los eventos que con los comandos, es solo un patrón diferente de manejo de la interacción del usuario.

Commands en WPF le permiten mover la implementación de un controlador de comandos a la capa de negocios. Los comandos combinan Habilitar estado y ejecución, por lo que todo está en su lugar. Obtenga más buscando el patrón MVVM.

Los comandos son más complejos de implementar al principio, por lo que si su aplicación es pequeña, debería considerar simplemente atenerse a los eventos.

+0

El comando es un patrón comúnmente utilizado en SOA y los eventos están en arquitectura impulsada por eventos (EDA). – Liton

+2

"Los comandos en WPF le permiten mover la implementación de un controlador de comando a la capa de negocios." esto no es verdad. Debe estar "fuera de la vista". – Aliostad

+4

@Aliostad En mi humilde opinión, una "capa de negocios" está en general "fuera de la vista". – Liton

2

Puede enlazar el comando WPF en la vista (XAML) y recibir el evento generado. De esta forma, no tiene que usar código detrás de lo que es un no-no en MVVM.

Por lo que el elemento de unión es muy importante. Pero también implementa CanExecute que normalmente desactiva su control si devuelve falso, p. si es un botón

+0

Sus comentarios se agradecen más si incluye más detalles y más referencias si es posible. Para un principiante, sus comentarios tienen referencias que los desarrolladores de WPF pueden seguir. Gracias – user1298925

0

En líneas generales, Command es el encapsulamiento de Object (Botón, Menú) Activar/Desactivar Estado y Acción.

Limitación de Command:

  • multidifusión (se puede utilizar de múltiples vinculante, pero no tan común y no se sienten tan bien como multidifusión evento)
  • Necesidad de 2 pasos para encender la bombilla. (Si su botón siempre está habilitado, entonces solo desperdicia su código).
1

En eventos, una acción está estrechamente relacionada con su fuente y no se puede reutilizar libremente; Al usar comandos, puedes mantener fácilmente varias acciones en un solo lugar y reutilizarlas en cualquier lugar de la aplicación.

Lo que hace diferentes comandos desde un simple controlador de evento asociado a un botón o un temporizador es que los comandos separar la semántica y la originador de una acción desde su lógica. Esto permite que fuentes múltiples y dispares invoquen la misma lógica de comando, y permite que la lógica de comando se personalice para diferentes objetivos.

tomado de - mando general: http://msdn.microsoft.com/en-us/library/ms752308(v=VS.90).aspx

En este artículo se explica el concepto de Comandos y se debe leer antes de utilizar comandos.

Este hilo SO también tiene mucha información útil. :

Custom WPF command pattern example

3

Commands son similares a Events excepto podemos asociar cualquier número de controles de interfaz de usuario o gestos de entrada a un comando y se unen ese comando a un controlador que se ejecuta cuando el control se activan o se realizan gestos.

Command también haga un seguimiento del clima o no están disponibles.Si no están disponibles, todos los controles asociados con ese comando están deshabilitados.

El código que se ejecuta cuando se invoca el comando se encuentra en el controlador de eventos Execute. El código que determina que el comando se puede o no se puede invocar se encuentra en el controlador de eventos CanExecute.

WPF tiene algunos comandos incorporados:

Command Class   | Example Commands 
----------------------------------------------- 
ApplicationCommands | Close, Cut, Copy, Paste, Save, Print 
NavigationCommands  | BrowseForward, BrowseBack, Zoom, Search 
EditingCommands  | AlignXXX, MoveXXX, SelectXXX 
MediaCommands   | Play, Pause, NextTrack, IncreaseVolume, Record, Stop 
Cuestiones relacionadas