在Metro风格的应用程序中从页面导航后调用哪种方法?

时间:2013-03-22 23:01:49

标签: c# .net xaml windows-8 microsoft-metro

在Metro应用中, 在pageA中使用从pageA导航到pageB this.Frame.Navigate(typeof(pageB)),在pageB中使用导航回this.Frame.GoBack()

一旦用户从pageB返回,将首先调用pageA的哪种方法?

我正在寻找类似onActivityResult的东西,如在android。

3 个答案:

答案 0 :(得分:2)

PageS的构造函数是第一个被解雇的方法

 public sealed partial class PageA : App1.Common.LayoutAwarePage
 {
    public PageA()
    {
        //this is the first code to be fired
    }
  }

答案 1 :(得分:2)

为了使答案更加丰富多彩 - 当pageA具有NavigationCacheMode的默认Disabled时,构造函数将首先被调用,但在其他情况下它可能/将不会被调用如果你希望快速返回到那个页面,可能实际上值得将它设置为NavigationCacheMode至少暂时到Enabled

更可靠的办法是处理OnNavigatedTo并从那里获取导航参数对象。只是确保你没有传递比短字符串或其他基本类型更复杂的东西(byte,Int16,Uint16,Int32 / int,UInt32,Int64,UInt64,Single / float,Double,Char,Boolean,String ,Guid seem to be supported)因为否则当你想要在应用程序停用时保存状态并且你调用{{{}时,你将无法使用Frame控件的内置状态保存机制3}}保存它(LayoutAwarePage做到了。)

答案 2 :(得分:0)

我同意Theo Kouzelis,constructer是第一个被解雇的方法。 然后是onNavigatedTo();

但是,如果您希望在pageA上执行某些任务,具体取决于pageB上的结果,您必须创建一个保存值的静态对象。