I am studying the MVVM pattern and putting it into practice in a Windows Phone 8 application, and I have a question about the best methods for initializing and accessing ViewModels in an application.
When I create an application to bind data from the WP8 SDK templates, I noticed this code in the App.xaml.cs file:
public static MainViewModel ViewModel { get { // Delay creation of the view model until necessary if (viewModel == null) viewModel = new MainViewModel(); return viewModel; } } private void Application_Activated(object sender, ActivatedEventArgs e) { // Ensure that application state is restored appropriately if (!App.ViewModel.IsDataLoaded) { App.ViewModel.LoadData(); } }
From what I understand, this means that the App class contains the MainViewModel as a static member, and when the application is activated, the ViewModel is loaded.
In this case, I have the following questions:
If there are several ViewModels in my application, will all of them be saved as members inside the App.xaml.cs file?
If each ViewModel file is loaded at the same time, how can I manage the application memory? Is it possible to unload every ViewModel information and load only the ViewModel that is used by my view?
c # viewmodel mvvm windows-phone-8
miguelarcilla
source share