私は MVVM パターンを研究し、それを Windows Phone 8 アプリで実践しています。アプリで ViewModel を初期化してアクセスするためのベスト プラクティスについて質問があります。
WP8 SDK テンプレートからデータバインド アプリケーションを作成すると、 App.xaml.csファイルに次のコードがあることに気付きました。
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();
}
}
私が理解していることから、それはAppクラスにMainViewModelが静的メンバーとして含まれており、アプリケーションがアクティブ化されると ViewModel が読み込まれることを意味します。
そういうわけで、以下の質問があります。
アプリに複数の ViewModel がある場合、それらはすべてApp.xaml.csファイル内のメンバーとして保存されますか?
すべての ViewModel のデータが同時に読み込まれる場合、アプリのメモリをどのように管理すればよいですか? 各ビューモデルのデータをアンロードして、自分のビューで使用されているビューモデルのみをロードすることはできますか?