アプリケーションでページの廃棄を完了したところ、現在表示しているページのみを廃棄することに気付きました。つまり、バックスタック内のページを返した後、すべてのメンバーが失われ、廃棄されないということです。現在のページを tombstone する方法についてですが、バックスタックページを tombstone することについては何もありません...これを行うエレガントな方法は何ですか?
私がどのように墓石を作っているかを示すために:
protected override void OnNavigatedTo(NavigationEventArgs e)
{
if (e.IsNavigationInitiator == false)
{
_tombstone = this.LoadState<Tombstone>("tombstone");
}
else
{
_tombstone.NavigationParameters = NavigationParameters;
}
}
protected override void OnNavigatedFrom(NavigationEventArgs e)
{
if (_tombstone != null && e.IsNavigationInitiator == false)
this.SaveState("tombstone", _tombstone);
}
public static void SaveState(this PhoneApplicationPage phoneApplicationPage, string key, object value)
{
if (phoneApplicationPage.State.ContainsKey(key))
{
phoneApplicationPage.State.Remove(key);
}
phoneApplicationPage.State.Add(key, value);
}
_tombstone には、廃棄後にページを再初期化する必要がある現在のページのすべての重要なメンバーが含まれています