2011-02-23 14 views
7

El proyecto que estoy trabajando es bastante grande y tenemos un marco que hemos desarrollado para la construcción de pantallas de interfaz de usuario simples fácilmente. Los dos tipos fundamentales que tenemos son Búsqueda (parámetros de búsqueda + cuadrícula de resultados) y Detalle (un conjunto de editores que generalmente se rellena desde algún objeto modelo).Es mi forma de Winforms codificación de la vieja escuela

La aplicación es todo C# .NET Windows Forms.

en el detalle tenemos el siguiente proceso.

  • Carga - Llene los controles de edición en función del objeto del modelo apropiado. Se invoca justo antes del detalle que se muestra

usuario hace clic en Aceptar

  • Validar - Valida el detalle para asegurarse de que todo está en consonancia
  • Aceptar - Copiar los valores de control actualizados de nuevo en el modelo

Todo esto funciona muy bien para cosas simples, pero en casos más complejos me he dado cuenta de que tal vez el enfoque anterior no es el más suave.

Los casos más complejos mencionados anteriormente son cuando un Detalle representa un objeto modelo y hay una cuadrícula incrustada en el Detalle que contiene objetos 'secundarios' que se pueden agregar y eliminar. Normalmente, desea iniciar el Detalle hijo y pasar el objeto del modelo principal, sin embargo, no está completo/actualizado en este momento porque eso solo ocurre cuando se hace clic en Aceptar. Me encuentro trabajando en torno a esto de una manera molesta a veces lo que me lleva a la siguiente pregunta.

A un alto nivel, es el enfoque de la práctica aceptada/mejor para las pantallas de detalle como describo a copiar valores al objeto de modelo cuando se cambia el control, en lugar de esperar hasta que se hace clic en OK?

Si es así, en una aplicación de Winforms, ¿cuál es la mejor manera de lograrlo? Encontré algunos artículos que mencionan Control.DataBindings pero no es ideal debido a la falta de seguridad en tiempo de compilación en el enlace. He leído que WPF tiene un buen soporte vinculante, pero desafortunadamente, no estoy usando WPF.

Respuesta

0

Esto podría ayudar:

Tutorial: Creación de un formulario maestro/detalle utilizando dos controles de Windows Forms DataGridView

http://msdn.microsoft.com/en-us/library/y8c0cxey.aspx

+0

Gracias pero estoy más interesado en entender cómo debo ir sobre el enlace de controles simples como cuadros de texto y cuadros de lista antes de preocuparme por las cuadrículas. –

3

Para Winforms Yo sugeriría que se mira en el Modelo-Vista-Presentador patrón. http://msdn.microsoft.com/en-us/magazine/cc188690.aspx

+0

Gracias, pero para ser sincero, realmente no entendía cómo era relevante, no parecía haber ninguna explicación sobre el enlace o cómo funcionaba y algunas de las actualizaciones de la vista se hacían manualmente. Hubo una llamada BindTo() a ICustomerTask pero no se detallaron en la interfaz o la implementación. –

Cuestiones relacionadas