Pregunta

Busco a un enfoque de mejores prácticas sobre cómo hacer la validación de la interfaz de usuario en una arquitectura modelo-vista-presentador.

necesito para validar algunas formas con una gran cantidad de controles. Y para hacer más fácil para el usuario, almaceno todos los errores o advertencias con una referencia al control en un registro que se muestra al usuario después para que él pueda saltar de inmediato al control que tiene que solucionar. Esto se hace de la vista en corte parcial, que en realidad es incorrecta ya que la validación debe tener lugar en el presentador con el fin de intercambiar la vista.

El problema para mí de hacer esta validación en el presentador es que no se acaba de comprobar si los valores proporcionados son erróneas, sino que también tiene que comprobar si radiobuttons han comprobado que permite a un cuadro de texto, que luego tiene que contener algún texto para ejemplo.

Yo estaba pensando en usar BindingSource en el presentador ya que está reflejando los cambios de interfaz de usuario y es visible para el presentador. Pero no estoy seguro de si este es el camino correcto a seguir (y yo creo que es un poco feo)?

Por cierto: la validación no toma lugar justo antes de escribir a la base de datos; que ya se lleva a cabo mientras el usuario está trabajando en las formas.

¿Puede alguien pensar en una buena manera de hacer esto?

¿Fue útil?

Solución

Finalmente encontramos una solución. Se hará como yo esperaba, utilizando el conjunto de datos en el presentador que es procesada por diferentes clases de validación (uno para cada una de nuestras "páginas"). La parte más difícil es, cuando los controles dependen unos de otros (pero al final es sólo comprobar si los valores se establecen en el conjunto de datos). Actualmente no es posible saltar al control de corregir los errores, pero esto se añadió más tarde a través de Reflexión pasando el nombre del control a los LogEntries y la vista a continuación, puede averiguar donde este control es.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top