zoukankan      html  css  js  c++  java
  • Win8的页面导航

    在Win8里面没有对话框概念,不同界面就是不同的页,有点类似于网页了。所以其导航很简单

    Frame.Navigate(typeof(PageMoblieCode),obj);//obj参数

    但是今天遇到一个问题,我跳转页面到另外一个,但是返回的时候我希望原先页面的值还存在。在ASP.NET里面很简单判断IsPostBack就好了。但是在Win8的里面怎么也没找的到。后来找了半天才知道,原来Win8的页面导航默认是不启用缓存的,后退页面的时候是恢复成初始状态。后来找到一个Page的一个NavigationCacheMode属性,意思是获取或设置一个导航模式,该导航模式指示此 Page 是否已缓存和在时间段内缓存项是否应保持不变,是一个枚举类型但是默认Disabled。

    更改需要在构造函数中修改

    public PageMoblieCode()
            {
                this.InitializeComponent();
                NavigationCacheMode = NavigationCacheMode.Enabled;//设置启用页面缓存
            }

    这样返回的时候,之前的页面所做的修改就还存在。但应该在你想启用缓存的页面的构造函数里面设置 和ASP.NET一样。

    还有一个就是 void OnNavigatedTo(NavigationEventArgs e),是当页面将要在Frame中显示的时候调用。其有一个NavigationMode 来判断当前页面是新来(New)的还是后退(Back)的还是前进(Forward)的,这样适合数据初始化

    protected override void OnNavigatedTo(NavigationEventArgs e)
            {
                if(e.NavigationMode == NavigationMode.New){
                    //数据初始化
                }
            }

    OnNavigatingFrom(NavigatingCancelEventArgs e)OnNavigatedFrom(NavigationEventArgs e) 两个还没用到

     

  • 相关阅读:
    Filter ,Interceptor,AOP
    React路由官方网站
    React的UI库以及国内镜像
    HBuilder+个推 实现app推动消息
    基于create-react-app再次配置
    使用 ES7 的 async/await 时报错—Uncaught ReferenceError: regeneratorRuntime is not defined
    微信小程序学习网站
    我的github地址
    如何在github搭建自己的项目
    Vue简单封装axios—解决post请求后端接收不到参数问题
  • 原文地址:https://www.cnblogs.com/richy/p/2749403.html
Copyright © 2011-2022 走看看