Sto cercando una "best practice" (se ce n'è anche una migliore) per chiudere in modo pulito un'applicazione WPF che utilizza MEF e PRISM4. In definitiva, sto cercando una sorta di "Close Service" che gestirà tutto l'evento/comando da Shell a qualsiasi viewmodel (o altri abbonati) che vogliono verificare che sia OK chiudere l'applicazione. L'aggregatore di eventi è il modo più pulito? Altre opinioni/opzioni?Arresto anomalo dell'applicazione tramite WPF PRISM 4
Idealmente, avrei un pulsante nel mio ToolbarView nel mio ToolbarRegion (1 di 2 regioni nella mia shell). Questo pulsante richiamerebbe un comando sul mio ToolbarViewModel (facendo riferimento a un comando sul mio ToolbarControler) che a sua volta farebbe 2 cose (credo?) ... In primo luogo, notifica a tutti gli abbonati che è il momento di chiusura e consente a tutti di annullare la chiusura e ... in secondo luogo, se nessuno annulla, in qualche modo notifica alla shell di chiudere. La modalità di spegnimento della mia app è impostata su "ShutdownMode.OnMainWindowClose", quindi se la Shell si chiude, dovrei essere tutto pronto.
Qualcuno può aiutarmi con questo?
Mi piace questo metodo, ma ho ancora una domanda. Come tieni traccia delle tue visualizzazioni attive (o vedi i modelli)? Quale raccolta si itera per chiamare "CanShutdown()"? Usi IRegionManager e chiedi le viste attive? – Thelonias
Dato che lo fareste in Shell, potreste semplicemente interrogare il contenuto dei vari elementi di layout che avete nella Shell e scorrere su di essi. Probabilmente è possibile anche con IRegionManager, prova a vedere cosa funziona meglio nel tuo scenario. –