这里介绍页面间导航时传递参数的2种方式,QueryString和全局变量。
一.QueryString方式
在页面1中的Button事件处理程序中添加了如下代码:
如果要传递多个参数,可以用&来合并,例如:
”//Pages/writingPage.xaml?myValue=Hello&Name=Zhang Yin”。
并且我在目标中重写了OnNavigatedTo方法。OnNavigatedTo方法是定义在Page类中的,
所以PhoneApplicationPage也继承了此方法,它是一个Virtual方法,所以需要用override关键字重写。
OnNavigatedTo在页面被创建后马上会被调用,也就是说在OnNavigatedTo 方法被调用时,页面的构造函数已经执行完毕了。
类似的还有OnNavigatedFrom方法,它是在离开当前页面时触发的。 目标中OnNavigatedTo方法内的代码如下:
Page类定义了一个类型为NavigationContext的NavigationContext属性,它包含一个类型为IDictionary<string, string>的
QueryString属性。判空检测后,将myValue键对应的值赋给文本框的Text属性。
通过QueryString虽然可以向一个页面传递参数,但却无法回传数据,例如我在目标页面中将文本修改为“Windows Phone 7!”,
然后点击“前往第1页”按钮,得到的还是初始的那个页面。要解决这个问题,就需要使用全局变量了,设置一个全局属性即可。