He creado una ventana que tiene un ListView
para mostrar una colección de personas. También hay 3 TextBox
es que se supone que muestran el nombre y apellido de la persona y una edad. Finalmente, hay un Button
para guardar los datos de la nueva persona ingresados en esos TextBox
es.WPF: ¿Dónde se detiene MVVM y comienza el código subyacente?
La carga de personas en el ListView
se realiza mediante la implementación de MVVM. ¡Funciona de maravilla! Además, agregar nuevas personas a la colección haciendo clic en Button
también se realiza a través de MVVM.
Pero hay dos casos de uso que no estoy seguro si es más prudente usar comandos, es decir, MVVM, o simplemente código subyacente. Los casos de uso son:
- Cuando el usuario selecciona una persona de la
ListView
, losTextBox
es deben mostrar a la persona detalles. - Cuando el usuario escribe caracteres en lugar de dígitos en el
TextBox
que muestra edad de la persona, se le debe advertir que los datos ingresados son incorrectos.
La razón por la que estoy seguro de si debería usar MVVM o de código subyacente es porque ambos casos de uso están relacionados con ver solamente (GUI), es decir, no hay interactividad con el modelo o la aplicación lógica de negocio. La fuente del elemento ListView
está vinculada a una colección de personas ObservableColleciton<Person>
y todos los datos relacionados con la persona seleccionada ya son pasados a la vista cuando ListView
está lleno de elementos. En el segundo caso de uso, nuevamente, no hay necesidad de ir a ViewModel para permitir que se active el cuadro de mensaje sobre la entrada incorrecta del usuario. ¿Qué hay de la creación de una devolución de llamada de validación en la edad propiedad de dependencia de la clase ViewModel en su lugar?
Gracias por todas las aclaraciones.
Una respuesta agradable, solo una pregunta más de mi parte. Cuando la vista tiene que tener otras ventanas modales, por ejemplo, al hacer clic en un botón, obtendré un Messagebox. ¿Necesito crear tales ventanas en código subyacente? – Arseny
Eso es complicado. Un cuadro de mensaje "puro" (Sí/No/Cancelar), por ejemplo, todavía se haría en código subyacente, pero creo que hay formas mucho mejores de crear una experiencia de usuario. Ahora, una ventana modal que está haciendo más que solo la funcionalidad sí/no/cancelar debería tener generalmente un modelo de vista y una vista de acompañamiento para la presentación. Aquí hay una gran pregunta/respuesta sobre este tema. http://stackoverflow.com/questions/454868/handling-dialogs-in-wpf-with-mvvm –