public MainWindowViewModel() { lastUsedTestConfig(); // Tengo un massimo di elementi in memoria per evitare consumi eccessivi informazioniUtente = new RingBuffer <InformazioneUtente>(30); carrelloViewModel = new CarrelloViewModel(); fotoGalleryViewModel = new FotoGalleryViewModel(); fotoRitoccoViewModel = new FotoRitoccoViewModel(); scaricatoreFotoViewModel = new ScaricatoreFotoViewModel(); selettoreStampantiInstallateViewModel = new SelettoreStampantiInstallateViewModel(); DataContextStampantiInstallate = selettoreStampantiInstallateViewModel; // Ascolto i messaggi IObservable <Messaggio> observable = LumenApplication.Instance.bus.Observe <Messaggio>(); observable.Subscribe(this); Messaggio msgInit = new Messaggio(this); msgInit.showInStatusBar = true; msgInit.descrizione = "Nessun messaggio"; msgInit.esito = 0; LumenApplication.Instance.bus.Publish(msgInit); caricaElencoDischiRimovibili(); this.abilitoShutdown = true; // permetto all'utente di scegliere se spegnere il computer. }
protected override void OnRequestClose() { // Faccio la dispose di tutti i viewmodel che ho istanziato io. if (selettoreStampantiInstallateViewModel != null) { selettoreStampantiInstallateViewModel.Dispose(); selettoreStampantiInstallateViewModel = null; } if (fotoGalleryViewModel != null) { fotoGalleryViewModel.Dispose(); fotoGalleryViewModel = null; } if (carrelloViewModel != null) { carrelloViewModel.Dispose(); carrelloViewModel = null; } base.OnRequestClose(); }