2011-04-05 11 views
5

Estoy experimentando con MVVMLight y Windows Phone 7, y hasta ahora me resulta relativamente fácil. La única cosa que no puedo entender es generar nuevas ventanas/vistas secundarias. Por ejemplo: si deseo crear/navegar a una nueva vista para permitir que un usuario edite un elemento, luego actualice la lista de elementos de la base de datos cuando regresen, ¿debería agregar algún tipo de controlador para cada activación de la vista? o puedo navegar a la vista de edición y luego activar una devolución de llamada cuando la vista está cerrada (se llama a NavigationService.GoBack).MVVM Light - Vistas y cuadros de diálogo

+0

Suprimí mi respuesta porque no estaba prestando atención y no vi que era para WP 7. – dugas

Respuesta

3

Lo que uso para esto es el marco de mensajería. Haga que MainViewModel se suscriba a un mensaje que debería hacer que se actualice, luego emita ese mensaje desde la página secundaria. MainViewModel, todavía en la memoria, escuchará ese mensaje y podrá responder. Tengo una muestra de esto en mi blog en http://chriskoenig.net/2010/07/05/mvvm-light-messaging/, pero tenga en cuenta que también puede crear sus propios mensajes personalizados (yo personalmente hago todo el tiempo) y luego simplemente planteo de forma manual:

// In MainViewModel 
Messenger.Default.Register<ChildProcessCompleteMessage>(this,() => RefreshData()); 

// In ChildViewModel 
Messenger.Default.Send<ChildProcessCompleteMessage>(new ChildProcessCompleteMessage()); 

Este es un patrón Uso bastante en mis aplicaciones para permitir la comunicación entre los modelos de vista. No estoy seguro de si esto responde completamente a su pregunta, por lo tanto, avíseme si necesita más información.

Cuestiones relacionadas