Estoy buscando una "mejor práctica" (si es que hay una mejor) para cerrar una aplicación WPF que utiliza MEF y PRISM4. En definitiva, estoy buscando algún tipo de "Servicio cerrado" que gestione todo el evento/comando desde el Shell a cualquier modelo de vista (u otros suscriptores) que quiera verificar que esté bien cerrar la aplicación. ¿El agregador de eventos es la manera más limpia? Otras opiniones/opciones?Agraciado cierre de la aplicación usando WPF PRISM 4
Idealmente, tendría un botón en mi ToolbarView en mi ToolbarRegion (1 de 2 regiones en mi Shell). Este botón invocaría un comando en mi ToolbarViewModel (haciendo referencia a un comando en mi ToolbarControler) que a su vez haría dos cosas (¿creo?) ... Primero, notifique a todos los suscriptores que es la hora de cierre y permita que cualquiera de ellos cancele el cierre y ... en segundo lugar, si ninguno se cancela, de alguna manera se notifica al shell para que se cierre. El modo de desconexión de mi aplicación está configurado en "ShutdownMode.OnMainWindowClose", por lo que si el Shell se cierra, debería estar todo listo.
¿Alguien me puede ayudar con esto?
Me gusta este método, pero todavía tengo una pregunta. ¿Cómo hace un seguimiento de sus vistas activas (o ve modelos)? ¿En qué colección iteras para llamar a "CanShutdown()"? ¿Utiliza IRegionManager y consulta vistas activas? – Thelonias
Dado que haría eso en el Shell, podría simplemente consultar el contenido de los diversos elementos de diseño que tiene en el Shell e iterar sobre ellos. Probablemente también sea posible con IRegionManager, intente y vea qué funciona mejor en su escenario. –