UWPのアプリ(WinRTのアプリでも同じですが)で、画面遷移の戻るをしたときに、毎回画面のインスタンスが作られるなんて勿体ない!ということがあるかもしれません。
そんな時は、PageのNavigationCacheModeプロパティを使用することができます。このプロパティをEnabledかRequiredにすることで、Frameを使った画面遷移で戻ってきたときにインスタンスが作られるかキャッシュが使われる(つまりインスタンスが新たに作られない)かを選択できます。
NavigationCacheModeプロパティは、ページのコンストラクタで設定します。
public MainPage() { this.InitializeComponent(); this.NavigationCacheMode = NavigationCacheMode.Enabled; }
こうすることで、キャッシュされるようになります。キャッシュされるページ数はFrameのCacheSizeプロパティで指定できます。App.xaml.csのFrameを作成している箇所を以下のように書き換えることで任意の数のキャッシュを保持することができます。
// Create a Frame to act as the navigation context and navigate to the first page rootFrame = new Frame { CacheSize = 2 };
上記の書き方だと2ページぶんキャッシュするということですね。
EnabledとRequiredの違い
NavigationCacheModeのEnabledとRequiredの違いですが、Requiredを指定すると必ずキャッシュが使われるようになります。そうCacheSizeを溢れてても。
VS2015を学習するためのコンテンツ
UWP appを作るための開発環境VS2015をさらっと学ぶためのコンテンツを紹介しておきます。
Visual Studio 2015 における統合開発環境の進化www.microsoftvirtualacademy.com