wp 页面传值
来源:互联网 发布:淘宝手机端网页版 编辑:程序博客网 时间:2024/06/06 01:04
上一篇博文简单的介绍了一下wp如何实现页面跳转,显然光实现跳转没有任何意义,这里介绍一下wp页面传值。
wp页面间传值的实现方式大致有3种,QueryString,全局变量和独立存储。其中QueryString和全局变量的生存期都是当前进程,而独立存储的生存期却不受程序是否运行
限制。由于独立存储属于一个比较单独且常用的技术,我会在后面单独写一篇博客进行介绍。
首先:QueryString方式
QuerString方式,即使用字符串常量实现页面间值的传递。
例如: this.NavigationService.Navigate(new Uri("/Page1.xaml?value=ASD",UriKind.Relative));
首先进行页面布局:
处理MainPage.xaml中Button的Click事件:
private void mb_Click_1(object sender, RoutedEventArgs e)
{
string uri = "/Page1.xaml";
uri += string.Format("?Input1={0}", mt.Text);
this.NavigationService.Navigate(new Uri(uri, UriKind.Relative));
}
程序运行时 Uri 是这样的:”/Page1.xaml?Input=……”如果要传递多个参数,可以用&来合并,例如:”/Page1.xaml?Input1=……&Input2=……”
Page1.xaml.cs中重写OnNavigatedTo函数实现接收值和TextBox属性Text的赋值工作:
protected override void OnNavigatedTo(NavigationEventArgs e)
{
string value = string.Empty;
IDictionary<string, string> queryString = this.NavigationContext.QueryString;
if (queryString.ContainsKey("Input1"))
{
pt.Text = queryString["Input1"];
}
base.OnNavigatedTo(e);
}
效果:
QueryString方式适用于简单、单向的页面传值,因为QueryString方式不能回传数据。
要解决回传数据的问题,最好是学习全局变量的使用。
其次全局变量:
对于全局变量来说,我们可以在项目中添加一个在整个程序生命周期中都能访问到的类,将相应的数据保存在这个类的属性里。不过现在我们不用自己动手做这些额外的工作了。项目中本身就有一个类满足这个需求:App类。 App 类继承自Application类。通过Application的Current属性就可以获取到与当前程序关联的Application类实例,然后通 过转换就可以得到App类实例。程序中所有的页面都可以访问到这个App类,所以将我们要保存的数据放到App类中是最好不过了,免去了自己实现的麻烦。在App类中添加一个公有的InputString属性:
要使用全局变量,添加下面代码:
App app = Application.Current as App;
处理MainPage.xaml页面的Button的Click事件
private void mb_Click_1(object sender, RoutedEventArgs e)
{
App app = Application.Current as App;
app.InputString = mt.Text;
this.NavigationService.Navigate(new Uri("/Pgae1.xaml", UriKind.Relative));
}
Page1.xaml.cs中重写OnNavigatedTo函数实现接收值和TextBox属性Text的赋值工作:
protected override void OnNavigatedTo(NavigationEventArgs e)
{
App app = Application.Current as App;
pt.Text = app.InputString;
base.OnNavigatedTo(e);
}
效果如下:
以上QueryString和全局变量两种页面传值的方法基本可以满足的页面传值操作。
这里说一下自己学习移动开发的经验,刚开始学习移动开发时基本什么都不懂,看见许多“大神”可以用许多种方法实现某个功能时真是由心地佩服。
为了向“大神”看起,每次遇到问题我都尽量用不同的方法去实现。但是随着开发时间的慢慢加长我发现这是一种非常不好的习惯,事实上对于不同的
问题应该有不同的解决方式,并且不同的解决方式有不同的优缺点。开发时应尽量使用熟练、高效的方式解决问题,不应该盲目地以解决问题的
方案个数为目标。
2013/5/16
- wp 页面传值
- wp 页面跳转(转)
- wp 页面跳转
- wp页面导航
- wp页面导航
- WP 页面间三种参数传递
- wp(4) 页面的跳转
- WP开发:页面跳转动画
- wp(3) 后台添加页面控件
- wp
- WP
- 去除WP页面头部的一些多余的rel标签
- wordpress wp-login跳转 的地址 login页面的制作
- WP学习笔记(1)页面跳转动画
- 改变WP程序启动的页面Page.xaml
- WordPress插件WP-EasyArchives添加文章归档页面
- WP&Win8中的多值绑定
- [WP]WP-ReplaceGravatarMirror插件
- I Can Guess the Data Structure!(水题,不过锻炼了stack,queue,priority的用法)
- 游戏开发中常用的设计模式
- 一些公式代码(慢慢添加)
- hdu1272小希的迷宫【并差集】
- uva 109 SCUD Busters-AC-Upgraded version
- wp 页面传值
- linux2.6.32.2 mini2440平台移植--LCD 背光驱动
- YALMIP与gurobi安装
- 第十章——维护索引(5)——查找丢失索引
- JDBC 事务处理_day12
- linux2.6.32.2 mini2440平台移植-- 激活 RTC 驱动
- 转贴自圣骑士wind:Google Maps Android API V2的使用及问题解决
- C# 无边框按钮,获得焦点时也没有框
- getchar函数