通常我们的应用程序是由多个应用页面构成的,于是就有一个十分重要的行为——页面间的切换。在这里成为页面间的导航。我们需要注意的问题是:怎么实现切换和怎么传递参数。
我们要了解的信息是:
显而易见,我们实现页面切换的必要数据就是每一个页面的URI,这和我们Web中的Uri的书写是相仿的,我们一样可以通过“?id='’”的形式来传递参数。
我们创建一个项目,叫做“NavigationPractice”,添加一个页面叫做“MyPage.xaml”,这是主页面MainPage需要导航到的页面。
这也是HyperlinkButton的一个重要的应用方式,通过指定HyperlinkButton的NavigateUri属性,实现导航,具体实现:
具体实现:定义一个按钮,给按钮添加Click事件,以实现导航。
使用代码:NavigationService.GoBack()。
补充:禁用返回按键的返回操作。给当前页面添加BackKeyPress事件,使用e.Cancel=true;的方式来禁用返回按键。
在使用的时候,就像之前的应用一般,只是在路径名中直接书写路径别名就行了。
类似于web中的参数的传递方法,在Uri中使用”?id='’&name='’“的方式添加需要传递的参数。当然这不会局限于后台代码或者是HyperlinkButton的NavigateUri属性中,如:
对于以上两种传递参数的方式,在接受的时候,使用NavigationContext。具体方法:
为了很好的使用参数,避免异常等情况发生,在获取数据的时候最好先判断参数是不是存在。
在导航的时候,配合独立存储,将需要传递的参数保存在独立存储中,由于一般传递的参数不会很大,笔者觉得使用IsolatedStorageSetting就行了。如在传递的时候:
在将要跳转的页面中重写方法OnNavigatedFrom,将需要传递的参数保存在State中:
在将要跳转到的页面中重写方法OnNavigatedTo,从State中读取字典数据:
以上的各种方法,在我们的项目中最这样的布局,其实就是简单地实现:
项目地址:http://files.cnblogs.com/waitingsky/NavigationPractice.rar
联系客服