当我注意到我只对我当前正在查看的页面进行墓碑化时,我刚刚在我的应用程序中完成了墓碑化页面,这意味着在我返回后台堆栈中的页面后会丢失所有成员并且不会被墓碑化..我只找到示例关于如何删除当前页面,但没有关于删除后台页面的内容......什么是优雅的方式来做到这一点?
只是为了展示我是如何墓碑的:
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 包含我当前页面的所有重要成员,我需要在墓碑后重新初始化页面