NavigationServiceには、必要な情報と、 OnNavigatingFromに付属するNavigatingCancelEventArgsパラメータが含まれていないようです。
残念ながら、あなたのニーズに対応する組み込み機能はないようです。
ただし、できることは、ユーザーが最後にアクセスしたページを保持することです (廃棄シナリオを処理するため)。たとえば、AppSettings にある可能性があります。これは疑似コードです。
public class WhateverYouWantLastPagePersister
{
private const string LastPageID = "LastPage";
public string GetLastPage()
{
string lastPage = string.Empty;
IsolatedStorageSettings.ApplicationSettings.TryGetValue<string>(LastPageID, out lastPage);
return lastPage;
}
public void PersistLastPage(string lastPage)
{
IsolatedStorageSettings.ApplicationSettings[LastPageID] = lastPage;
}
}
最後にアクセスしたページを「自動的に」永続化するには、PhoneApplicationPage から派生させ、 OnNavigatingFromをオーバーライドして独自のベース ページを作成します。
public class BasePage : PhoneApplicationPage
{
protected override void OnNavigatedFrom(NavigationEventArgs e)
{
base.OnNavigatedFrom(e);
Uri currentUri = ((App)Application.Current).RootFrame.CurrentSource;
WhateverYouWantLastPagePersister.PersistLastPage(CustomMethodToExtractPageNameFromUri(currentUri));
}
}
最後にアクセスしたページを保持する必要があるすべてのページは、そこから派生する必要があります (つまり、Page1、Page2...)
最後に、必要なものを取得するために使用できます。WhateverYouWantLastPagePersister
.GetLastPage()
もちろん、これらの擬似コード サンプルでは:
- lastPage は任意のタイプ (string、enum、int など) にすることができます。必要なのは、string から必要なものへの適切なカスタム コンバーターだけです。
CustomMethodToExtractPageNameFromUri
単純な文字列パーサーです
WhateverYouWantLastPagePersister
静的クラス、シングルトン、DI フレームワークを注入することができます。それはあなた次第です!