博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【WP7】页面之间数据交互
阅读量:5284 次
发布时间:2019-06-14

本文共 2068 字,大约阅读时间需要 6 分钟。

 在WP7开发中,经常需要在不同的页面切换,所以也会经常遇到数据在不同页面之间的传递问题,下面介绍几种数据传递的方法

  

1、页面之间传递数据(字符串)

    通过页面导航的Uri地址进行传递,导航到 Page2.xaml 页面

string uriString = "/page2.xaml?parameter1=value1&parameter2=value2";        Uri uri = new Uri(uriString, UriKind.Relative);        this.NavigationService.Navigate(uri);

    字符串参数接在页面地址后面,格式为:    ?参数名1=参数值1&参数名2=参数值2

    在目标页面的 OnNavigatedTo() 函数中接受参数 

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)        {            if (this.NavigationContext.QueryString.Count > 0)            {                string value1, value2;                this.NavigationContext.QueryString.TryGetValue("parameter1", out value1);                this.NavigationContext.QueryString.TryGetValue("parameter1", out value2);                            }            base.OnNavigatedTo(e);        }

   

2、页面之间传递对象

    一般的,我们不能在页面之间传递对象,页面之间对象传递通常采用全局对象来做,由于全局对象所有页面共享,所以也可以实现数据传递的功能

      - 定义全局对象

      在App.xaml.cs文件中的 App类 的构造函数前面添加静态属性 GlobalValue

public partial class App : Application    {        public static String GlobalValue { get; set; }    }

      然后页面之间通过 App.GlobalValue 引用并对其进行操作

    

3、关于别名的使用

    关于别名的使用(用的比较少),当应用程序的Uri地址导航比较多的时候,为了方便管理,我们可以通过别名的方式来访问

    别名的使用也是通过定义全局资源来实现的

    在App.xaml文件中添加命名空间

      xmlns:nav="clr-namespace:System.Windows.Navigation;assembly=Microsoft.Phone"

    然后添加资源:

    第一种为无参数别名导航

    第二种为带参数单个参数导航,{}里面的名字要完全一样

    第三种为多参数导航,参数与参数之间用 & 连接(实际上就是&符号),注意:参数与别名之间也用 & 连接,使用与第二种有点不同

    下面是使用:

    在xaml中使用

      在App.xaml.cs文件中的App类的构造函数中添加导航映射到 RootFrame 的 UriMapper

this.RootFrame.UriMapper = Resources["UriMapper"] as UriMapper;

      然后就可以再Xaml文件中使用UriMapper资源了

     
 

    

    在C#代码中使用

      在C#代码中很少使用UriMapper,可以通过资源的方式访问,但是好像不能通过key来索引,只能通过index索引

UriMapper uriMapper = App.Current.Resources["UriMapper"] as UriMapper;            Uri uri = uriMapper.UriMappings[0].MappedUri;

 

转载于:https://www.cnblogs.com/bomo/archive/2012/11/05/2755740.html

你可能感兴趣的文章
LuoGuP1351联合权值
查看>>
CodeForces1165
查看>>
【期外】(三)Linux下集成开发环境Geany
查看>>
【算法•日更•第三十二期】教你用出windows体验的Linux
查看>>
【算法•日更•第三十四期】最大流算法
查看>>
【算法•日更•第三十三期】网络流基础知识(最大流)
查看>>
【算法•日更•第三十六期】初赛偷懒攻略
查看>>
【算法•日更•第三十五期】FF算法优化:EK算法
查看>>
【算法•日更•第三十七期】A*寻路算法
查看>>
【算法•日更•第三十八期】迭代器是什么?
查看>>
【算法•日更•第四十期】简单计数原理
查看>>
【算法•日更•第三十九期】迭代加深搜索:洛谷SP7579 YOKOF - Power Calculus 题解...
查看>>
【算法•日更•第四十一期】组合与排列
查看>>
【算法•日更•第四十三期】QQ for linux
查看>>
【算法•日更•第四十二期】离散傅里叶变换(DFT)
查看>>
【算法•日更•第四十四期】虚二叉树
查看>>
【算法•日更•第四十五期】静态二叉排序树(建立)
查看>>
【算法•日更•第四十六期】二分图(基础)
查看>>
【算法•日更•第四十七期】Mac与windows系统的差别
查看>>
【算法•日更•第四十八期】二分图(匈牙利算法)
查看>>