Soy nuevo en MVVM. Acabo de aprender este patrón y quiero usarlo en mi proyecto. Ya entiendo el principio de funcionamiento de este patrón y aprendí a usar Comandos. Pero me he preguntado cómo manejar los eventos de otros controles, por ejemplo, el evento ListBox SelectionChanged. ListBox no tiene el atributo de comandoCómo gestionar eventos en MVVM
Respuesta
A menudo no es necesario. Por ejemplo, sólo puede obligar a la SelectedItem
propiedad ListBox
's de una propiedad en su modelo de vista:
<ListBox ItemsSource="{Binding Customers}" SelectedItem="{Binding SelectedCustomer, Mode=TwoWay}"/>
Esto no sólo le dan acceso al cliente seleccionado en su modelo de vista, sino que también permite que su modelo de vista dictar el cliente seleccionado estableciendo la propiedad en sí.
Existen otras técnicas para "evitar" el manejo directo de eventos en el código subyacente. Por ejemplo, comportamientos adjuntos. Sin embargo, no debe tener miedo de manejar eventos directamente si el código solo está relacionado con la vista y simplifica su código.
Interesante idea. Por ejemplo, quiero manejar el evento Mouse RightClick en DataGrid. En este caso, ¿tengo que escribir handler en el código detrás o debo usar el comportamiento adjunto? – Polaris
@ Polaris. mira los frameworks mvvm (cinch, mvvm light ...) por ahí. encontrará implementaciones como EventToCommand Behavior donde puede vincular eventos a comandos. y como dijo kent: siéntase libre de usar codebehing al codificar ver cosas relacionadas :) por ejemplo BringToView el elemento seleccionado en una grilla o cuadro de lista – blindmeis
+1 para el comentario sobre el manejo de eventos cuando solo afectan la capa de vista. Mucha gente olvida esto ... –
Para agregar un atributo de comando a su control, debe heredar de ICommandSource. Revisa la publicación this, para ver cómo se logra.
El BookLibraray aplicación de la WPF Application Framework (WAF) muestra cómo escuchar a los eventos de WPF en un Modelo-Vista-ViewModel (MVVM) diseñado aplicación. Permite a un usuario seleccionar varios libros para que pueda eliminarlos todos a la vez. Ver clase BookLibrary.Presentation.Views.BookView.
- 1. Gestionar eventos en DART
- 2. Gestionar los eventos OnNavigatedFrom/OnNavigatedTo en ViewModel
- 3. Cómo gestionar correctamente los eventos de clic en el widget
- 4. Manejo simple de eventos en MVVM
- 5. Eventos en lugar de comandos en MVVM?
- 6. WPF y MVVM. Encuadernación Eventos
- 7. Cómo gestionar proyectos compartidos correctamente en TeamCity
- 8. WPF MVVM Uso de comandos frente a controladores de eventos
- 9. Gestionar contenido comprimido en Android
- 10. Gestionar conflictos de CSS
- 11. iCloud: ¿cómo gestionar la desactivación de iCloud?
- 12. Cómo gestionar GetDate() con Entity Framework
- 13. ¿Cómo puedo gestionar varios criterios OrderByDescending?
- 14. Cómo gestionar valores con espacios en Process.Start en C#
- 15. MVVM Foundation vs MVVM Toolkit
- 16. Extensiones reactivas (Rx) + MVVM =?
- 17. ¿Cómo manejar el evento Wpf DataGrid CellEditEnding en MVVM?
- 18. MVVM - Confirmación de salida
- 19. El modelo en MVVM
- 20. Django ¿Cómo veo consulta en gestionar la cáscara
- 21. Cómo gestionar una comilla simple en Oracle SQL
- 22. ¿Cómo gestionar la impresión de depuración en F #
- 23. Cómo lanzar y gestionar excepciones en R6RS Esquema
- 24. Cómo gestionar la solicitud de inserción en smack API
- 25. Cómo gestionar conexiones HTTP de hasta 100k en .Net
- 26. ¿Cómo puedo gestionar un grupo de tenedores en Perl?
- 27. WPF MVVM y Pruebas unitarias
- 28. WPF MVVM manera correcta para disparar eventos en vista del modelo de vista
- 29. ¿Por qué los eventos y comandos en MVVM no están soportados por WPF/Visual Studio?
- 30. Manejo de eventos del mouse en controles con patrón MVVM: práctica recomendada:
No lo he usado, pero es posible que pueda utilizar CollectionView o CollectionViewSource para habilitar MVVM en varios controles de tipo de colección. –