Windows phone 8 如何获取backbackback页面的对象引用
我试图保存一个被删除的backbackback页面列表,这样当我导航回它们时,我可以比较它们是否存在于这个列表中。如果是,我将恢复其状态 目前我的代码是这样的Windows phone 8 如何获取backbackback页面的对象引用,windows-phone-8,tombstoning,Windows Phone 8,Tombstoning,我试图保存一个被删除的backbackback页面列表,这样当我导航回它们时,我可以比较它们是否存在于这个列表中。如果是,我将恢复其状态 目前我的代码是这样的 public partial class App : Application { public static List<PhoneApplicationPage> TombstonedPages = new List<PhoneApplicationPage>(); private void App
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);
}
}
}
}
但我无法从backback获得页面的引用。我该怎么做?有其他方法吗?//我应该在此处添加什么:-尝试将此App.Current.RootVisual添加为PhoneApplicationFrame.Content作为PhoneApplicationPage@Vyas_27难道不是只有当前页面的内容,而不是我想添加的整个backbackback吗?您将保存整个页面,而不是contentPhoneApplicationFrame的当前内容内容,即CurrentPage&这不是您要检查的页面吗?@Vyas_27 ohk是的,我忘了用此代码保存当前页面。但是,所有处于backbackback中的页面在被删除时也将失去它们的状态。我将如何恢复它们。我也需要他们在TombstonedPages列表中引用,尝试添加与PhoneApplicationFrame相同的代码TombstonedPages.AddApp.Current.RootVisual。内容与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
}
}