我正在开发一个Windows Phone应用程序。
我有三页,P1,P2和P3。
从P1我可以去P2,从P2我可以去P3。
我想在从P3回到P2时才执行一些代码。
我该怎么做?
如果我只想在从P1到P2的时候执行另一个代码......
答案 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
字典中