¿Cuál es la diferencia entre WPF Command
y Event
?¿Cuál es la diferencia entre Comando y evento de WPF?
Respuesta
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.
El comando es un patrón comúnmente utilizado en SOA y los eventos están en arquitectura impulsada por eventos (EDA). – Liton
"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
@Aliostad En mi humilde opinión, una "capa de negocios" está en general "fuera de la vista". – Liton
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
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
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).
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. :
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
- 1. ¿Cuál es la diferencia entre WPF y la aplicación Silverlight?
- 2. ¿Cuál es la diferencia entre DataTemplate y DataContext en WPF?
- 3. ¿Cuál es la diferencia entre Width y ActualWidth en WPF?
- 4. ¿Cuál es la diferencia entre StaticResource y DynamicResource en WPF?
- 5. ¿Cuál es la diferencia entre WCF y WPF?
- 6. ¿Cuál es la diferencia entre WPF y Silverlight?
- 7. ¿Cuál es la diferencia entre HorizontalAlignment y HorizontalContentAlignment en WPF?
- 8. ¿cuál es la diferencia entre:.! y: r !?
- 9. ¿Cuál es la diferencia entre $ (comando) y `comando` en la programación de shell?
- 10. ¿Cuál es la diferencia entre dict() y {}?
- 11. Cuál es la diferencia entre = y: =
- 12. ¿Cuál es la diferencia entre [indefinido] y [,]?
- 13. ¿Cuál es la diferencia entre "$^N" y "$ +"?
- 14. ¿Cuál es la diferencia entre ".equals" y "=="?
- 15. ¿Cuál es la diferencia entre {0} y ""?
- 16. ¿Cuál es la diferencia entre .ToString (+) y ""
- 17. Cuál es la diferencia entre $ (...) y `...`
- 18. ¿Cuál es la diferencia entre `##` y `hashCode`?
- 19. ¿Cuál es la diferencia entre + = y = +?
- 20. ¿Cuál es la diferencia entre " " y ""?
- 21. Cuál es la diferencia entre $ y jQuery
- 22. ¿Cuál es la diferencia entre un listener de clase y un listner de instancia en WPF?
- 23. ¿Cuál es la diferencia entre System.Windows.Controls.Control y System.Windows.Forms.Control?
- 24. ¿Cuál es la diferencia entre System.Drawing.Point y System.Windows.Point?
- 25. ¿Cuál es la diferencia entre ItemTemplate y ItemPanelTemplate?
- 26. ¿Cuál es la diferencia entre Mouse.OverrideCursor y this.Cursor
- 27. ¿Cuál es la diferencia entre CellClick y CellMouseClick?
- 28. ¿Cuál es la diferencia práctica entre la ventana de comando y la ventana Inmediato?
- 29. ¿cuál es la diferencia entre toque y toque en IOS
- 30. Cuál es la diferencia entre Dispatcher.BeginInvoke y Task.Factory.StartNew
sujeto y descripción de la pregunta no se corresponde en absoluto. – akjoshi