廃棄されたバックスタック ページのリストを保存しようとしています。これにより、それらに戻ったときに、それらがこのリストに存在するかどうかを比較できます。はいの場合、その状態を復元します。
現在、私のコードは次のようになっています。
public partial class App : Application
{
public static List<PhoneApplicationPage> TombstonedPages = new List<PhoneApplicationPage>();
private void Application_Activated(object sender, ActivatedEventArgs e)
{
if(!e.IsApplicationInstancePreserved)
{
foreach (JournalEntry j in (Application.Current.RootVisual as PhoneApplicationFrame).BackStack)
{
TombstonedPages.Add(//What should i add here);
}
}
}
}
一部の PhoneApplicationPage のコード
protected override void OnNavigatedTo(NavigationEventArgs e)
{
//checking tombstone
if(e.NavigationMode== NavigationMode.Back && App.TombstonedPages.Contains(this) )
{
//restore state and delete entry from App.TombstonedPages
}
}
protected override void OnNavigatedFrom(NavigationEventArgs e)
{
if(e.NavigationMode != NavigationMode.Back)
{
//save state
}
}
しかし、バックスタックからページの参照を取得できません。どうすればいいですか?これを行う別の方法はありますか?