2010-07-17 19 views
8

Actualmente estoy compilando una aplicación basada en MVVM. La aplicación también debe tener un asistente en estilo MVVM. El asistente no es un asistente normal, es un tipo particular de asistente. Mi objetivo es implementar un asistente conMVVM como asistente

1.) también tiene varias ramas. El asistente puede guiarte en otra dirección. Entonces el asistente no debe ser directo.

2.) también puede tener atajos. Puede omitir algunas páginas donde se configuran los valores predeterminados.

3.) también es normal, sencillo.

Nota, parte de la información en las páginas de wizrad es sobre la marcha. Eso significa que la información puede pasarse entre cada paso y procesarse.

¿Existen métodos como patrones para resolver mi problema? ¿Cómo lo implemento de la mejor manera?

Respuesta

2

Si el asistente tiene una única máquina virtual que almacena el estado/resultados de cada paso y se sienta detrás de una vista que es un control de usuario ...

Usted podría tener un marco en la vista asistente que requiere 2 eventos en el código subyacente (¿Esto obviamente depende de si su arquitectura MVVM puede vivir con esto?).

Evento 1) Cuando el enlace de su paso de asistentes aumenta NotifyPropertyChanged: indique a su marco que "Navegue" a la página adecuada (como se describe en una propiedad de su máquina virtual asistente).

Evento 2) En el evento "Navegado" de marcos para que pueda señalar el contexto de datos de las páginas actuales en su máquina virtual.

De esta manera el asistente modelo de vista controla el estado del asistente de principio a fin y también puede describir los pasos, que pueden ser fácilmente añadidos a, editados, etc.

Obviamente esto puede no sienta bien con todo el mundo está vista de MVVM.

2

que te pueden echar un vistazo a la aplicación de la muestramodelo de vista de la WPF Application Framework (WAF). Muestra cómo implementar un asistente de una manera MVVM.