Pregunta

Tenemos una aplicación que tiene una vista típica maestra / detalle. La vista maestra muestra una lista de títulos de boletos y, si hace clic en un título de boleto, vea una vista con los detalles del boleto.

La vista maestra tiene un modelo que es una lista de objetos "ticket" que contiene más información sobre un boleto específico. Encontramos un manejador en el clic, que básicamente instanesa una nueva vista de detalles y la muestra. Esto funciona bien, excepto que tenemos que dar todos los valores de configuración como tipos de datos primitivos al constructor (sabemos que no podemos usar objetos al instanciar)

Pensamos en otra forma de hacer esto, pero no pudo entenderlo. En el inicio () (del modelo de vista de detalles), solo pasamos la identificación (del boleto clics) y desea usar MVX.Resolve para obtener el modelo Master View. Entonces, ¿la pregunta sería, puedes buscar modelos de visión arbitraria dentro de otros modelos de vista?

Una segunda idea se escribiría una clase de modelo de vista de base desde la cual todos los modelos de vista en nuestra aplicación HEALTE, que registra el modelo de vista en la instanciación a un servicio para que pueda llamar a ese servicio y recuperar el modelo de vista desde cualquier lugar (mediador patrón). ¿Estaría contra el marco?

Una respuesta que he encontrado es "usar mensajes", pero para mí parece algo voluminoso, al menos cómo entendí esto. El modelo de vista de detalles tendría que enviar un mensaje al modelo Master View "Ok, estoy listo ahora" y luego el modelo Master View diría "Muy bien, heres The Configuration".

para resumir las preguntas:

  1. ¿Es posible obtener ciertos modelos de visión del marco dentro de otros modelos de vista?
  2. implementaría esto a mano contra el marco?
  3. ¿Entendemos el enfoque de mensaje correctamente y si no, cuál sería una forma más ligera / genérica de hacerlo?
  4. vítores y gracias

    TOM

¿Fue útil?

Solución

Por lo general, cuando tengo que compartir datos en todos los modelos de vista, utilizo un servicio para administrarlo.El servicio se inyecta típicamente a través de IOC.

Trato a los modelos de vista como un mediador entre los servicios y la vista.La mayor parte de mi lógica se almacena en el servicio.Las únicas cosas que tengo en el modelo de vista son propiedades para la vinculación de datos, los comandos que envían a un servicio y otras preocupaciones de nivel de presentación.

Para su escenario, tendría que el generador de MasterViewModel pase un identificador del DetailViewModel, donde le pedirá al GeneracDicEtAcode para la configuración por ID.

Espero que esto ayude.

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