Estoy construyendo una aplicación que se basa en MVVM-Light. Tengo la necesidad de crear varias instancias de la misma Vista, y cada una debe vincularse a su propio ViewModel.¿Cómo tener múltiples pares "View-ViewModel"?
El valor predeterminado ViewModelLocator
implementa ViewModels como singletons, por lo tanto, diferentes instancias de la misma vista se vincularán al mismo modelo de vista.
Pude crear el ViewModel en el VMLocator como un objeto no estático (tan simple como devolver una nueva VM() ...), pero eso solo me ayudaría parcialmente. De hecho, todavía necesito hacer un seguimiento de las ventanas abiertas. Sin embargo, cada ventana podría abrir varias otras ventanas (de un tipo diferente, sin embargo). En esta situación, podría necesitar ejecutar alguna operación en la Vista padre y todos sus elementos secundarios. Por ejemplo, antes de cerrar la Vista P, podría cerrar todos sus elementos secundarios (ver C1, ver C2, etc.).
Por lo tanto, ¿hay alguna manera simple y fácil de lograr esto? ¿O hay alguna mejor práctica que me aconsejarías seguir?
Gracias de antemano por su valiosa ayuda.
Cheers,
Gianluca.
Ok, no estoy seguro de estar en el camino correcto, pero encontré un artículo interesante (por John Papa - http://johnpapa.net/silverlight/simple-viewmodel-locator-for-mvvm-the-patients -have-left-the-asylum /) y estoy tratando de implementar ViewModelLocator de esa manera. Sin embargo, todavía no estoy seguro de cómo proceder para manejar una Vista específica entre las muchas que podría crear ... –