Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows phone 8 如何获取backbackback页面的对象引用_Windows Phone 8_Tombstoning - Fatal编程技术网

Windows phone 8 如何获取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

我试图保存一个被删除的backbackback页面列表,这样当我导航回它们时,我可以比较它们是否存在于这个列表中。如果是,我将恢复其状态

目前我的代码是这样的

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
        }
    }