Me gusta la idea de MVVM de RelayCommand expuesta por ViewModel. Eso es agradable y elegante, para las operaciones que se pueden hacer sin más aportaciones del usuario. Sencillo. TestableMVVM y comandos que muestran más GUI
Sin embargo, no todas las operaciones son UI-less. Algunos requieren confirmación ("¿Estás seguro de que deseas eliminar?"). Otros requieren más información todavía. Abrir un archivo puede implicar cualquier cosa, desde un diálogo Abrir archivo hasta un Asistente de importación completo.
¿Cuál es la mejor manera, dentro de una aplicación MVVM, para escribir comandos que requieren la entrada del usuario? ¿Existe un patrón establecido para resolver esto con la inyección de dependencia de alguna manera? ¿Debo escribir un controlador KeyDown en el código subyacente y hacer que ejecute explícitamente el evento? ¿Debo recurrir a RoutedUICommand y poner todo el código "mostrar la siguiente GUI" en mi vista? ¿O hay algo obvio que me estoy perdiendo por completo?
La parte "mostrar un diálogo abierto" puede ser reutilizable; pero entonces necesitas hacer algo con ese archivo, y eso va a ser específico de la aplicación, así que no estoy seguro de ver cómo funciona esto. ¿Puedes dar un ejemplo de cómo lo harías con los comportamientos? –
@ joe-white Envía un mensaje enrutado a la pila de la interfaz de usuario que será capturado y retransmitido a un modelo de vista ... O si te vinculas a una propiedad en un modelo de vista, sabrás que el archivo se asigna cuando la propiedad cambia. –