PhoneApplicationPage导航问题

时间:2011-04-18 12:08:53

标签: windows-phone-7 navigation page-lifecycle

我正在开发一个Windows Phone应用程序。

我有三页,P1,P2和P3。

从P1我可以去P2,从P2我可以去P3。

我想在从P3回到P2时才执行一些代码。

我该怎么做?

如果我只想在从P1到P2的时候执行另一个代码......

2 个答案:

答案 0 :(得分:1)

您要尝试匹配经典有限状态自动机的功能。您只需要一个超出页面生命周期的变量来完成此任务。

在App.xaml.cs中创建一个新的公共字符串属性。

public string PreviousPage { get; set; }

在您的网页Page_Load方法中,您可以查看上一页并对其进行操作。

Page_Load(object sender, RoutedEventArgs e)
{
     switch(App.PreviousPage)
     {
       case "P1":
         //do something
         break;
       case "P2":
         //do something different
         break;
       case "P3":
         //do something fantastic
         break;
       default:
         //I have no idea how we got here. 
         break;
    }
    //After we have done out work let's update PreviousPage
    App.PreviousPage="P1";//or what ever the page name is. 
}

答案 1 :(得分:1)

重写类OnNavigatedFrom的{​​{1}}方法,并将当前页面存储在全局静态变量中。

也覆盖PhoneApplicationPage,在那里检查变量并根据它的值执行代码。不要忘记在应用程序被逻辑删除时保留变量,您可以将其保留在OnNavigatedTo字典中