`
WPComming
  • 浏览: 58905 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Windows Phone开发(9):关于页面状态

 
阅读更多

按照一般做法,刚学会如何导航,还是不够的,因为要知道,手机里面的每个页面,就如同Web页面一样,是无状态的。

啥是无状态?如果我们玩过Web开发就明白了,当你在当前页面输入一些内容,然后退回到前一页面,再前进到该页面,就会发现,之前输入的内容可能会没了。
再比如吧,你在页面A中进行了数据绑定,点击按钮后进行查询并把查询结果显示在表格中,然后你点击一个超链接,跳到D页面,然后你再从D页面退回A页面,你会发现,刚才查询的结果就不会显示了。

这就是无状态,也就是说,在你导航离开当前页面后,当前页面不会保留任何操作相关的数据。

在手机应用程序中同样如此,所以,在导航离开当前页面时保存状态信息,而在用户再次回到该页面时,恢复状态信息。

具体做法是重写两个方法:
1、OnNavigatedFrom,当导航离开当前页面后调用,在这个方法中,要把状态相关的数据保存;
2、OnNavigatedTo,当用户再次导航回该页面时,该方法被调用,这时候取出状态信息并恢复。

要读写状态信息,用到页面实例的State属性,它是一个字典,也就是键 - 值对——Key - Value。

下面我们来演示一下如何保存和恢复状态信息。
新建一个WP项目,随便布局一下主页面,反正做成类似撰写邮件的页面就行了,然后放一个按钮,点击按钮后打开电话拨号程序开始打电话。


接着重写上面说的两个方法,分别保存和读取状态。
对于State属性,不必用Add,直接用键和值设置就行了,比较我要保存姓名信息,就这样写:
this.State["Name"] = "小红";

如果字典集合中没有Name的键,会自动创建,如果有,就改写其值。对,你肯定想到了,和Asp.net中我们使用Session差不多。


要注意的是,如果是读取状态信息时,记得先判断要获取数据的键是否存在,如果存在再取值,为什么?别忘了,当应用程序第一次启动时,也会调用OnNavigatedTo方法,这时候,内存中不可能保存任何状态的,所以,在取状态信息时候要记得这点。

然而,我经过实验发现,在WP 7.1的模拟器中,不需要保存状态,什么代码都不写,系统会自动保存状态,然后导航回去后,状态信息依然存在。
就是不知道真实手机上是不是这样,如果是,那WP也真是强大!

下面是完整示例代码。

[XAML]


[C#]


分享到:
评论

相关推荐

    windows phone开发源代码18-24

    这个“windows phone开发源代码18-24”的压缩包很可能是包含了一系列示例代码,涵盖了从第18课到第24课的学习内容,旨在帮助开发者深入理解Windows Phone 8应用的开发流程。 1. **Windows Phone 8 Silverlight**: ...

    ArcGIS for Windows Phone开发教程

    ### ArcGIS for Windows Phone 开发教程知识点解析 #### 一、Windows Phone 平台简介 - **概述**:Windows Phone 是微软推出的一款智能手机操作系统,它整合了微软旗下的 Xbox Live 游戏、Zune 音乐等功能,提供了...

    windows phone (wp7)页面加载进度提示

    在Windows Phone 7 (简称WP7)开发中,为用户提供良好的用户体验是至关重要的。当应用程序执行耗时操作,如加载页面或处理大量数据时,显示加载进度提示是一种常见且有效的做法。这不仅可以告知用户应用程序正在运行...

    构建Windows Phone7应用程序

    构建Windows Phone 7应用程序涉及一系列步骤和关键技术,这些技术构成了移动应用开发的基础。Windows Phone 7平台采用Silverlight作为主要的UI框架,使得开发者能够创建丰富的、交互式的用户界面。以下是对标题和...

    windows phone 8.1 入门教程 页面跳转 9

    - 可以在此方法中处理来自前一个页面的数据或设置页面状态。 ```csharp protected override void OnNavigatedTo(NavigationEventArgs e) { // 获取传入的参数 string name = NavigationContext.QueryString...

    Windows_Phone_7开发教程

    开发Windows Phone 7应用首先需要安装Microsoft Visual Studio Express for Windows Phone,这是专为Windows Phone开发设计的集成开发环境(IDE)。该软件包括了开发所需的编译器、调试器以及模拟器,方便开发者在没有...

    《深入理解Windows Phone 8.1 UI控件编程》源代码.rar

    《深入理解Windows Phone 8.1 UI控件编程》是一本专为Windows Phone开发者编写的指南,涵盖了在Windows Phone 8.1平台上构建用户界面的关键技术。这本书的源代码提供了丰富的示例,帮助读者深入理解如何利用XAML和C#...

    Windows_Phone_7入门经典-使用Silverlight和XNA开发Windows_Phone应用

    ### Windows Phone 7入门经典-使用Silverlight和XNA开发Windows Phone应用 #### 知识点一:Windows Phone 7操作系统及其特点 - **历史背景**:随着iPhone和Android的出现,微软意识到需要一个全新的手机操作系统来...

    windows phone 8 and windows phone 8 game development

    ### Windows Phone 8与Windows Phone 8游戏开发 #### 关于本书 本书旨在全面介绍Windows Phone 8及其游戏开发的相关知识和技术。随着移动计算技术的迅速发展,智能手机和平板电脑已成为人们日常生活中不可或缺的一...

    一天一天学 windows phone 7 源码

    Silverlight是Windows Phone 7开发的主要工具,它提供了丰富的UI控件和数据绑定机制,使得状态管理变得相对简单。 1. **保存状态**:在应用即将被暂停时,系统会触发`Application_Closing`或`Suspending`事件。这时...

    一天一天学 windows phone 13章 源码

    在Windows Phone平台上,开发应用程序的过程中,控件是构建用户界面不可或缺的部分。本教程将深入讲解如何在Windows Phone 8(WP8)应用中使用RadioButton和CheckBox控件,这两个控件在日常开发中非常常见,用于实现...

    Windows Phone 7 示例代码

    Windows Phone 7是一款由微软开发的操作系统,专为智能手机设计,于2010年发布。这个操作系统在移动设备上提供了丰富的用户体验,包括与Microsoft Office的深度集成、Xbox Live游戏以及Zune媒体播放功能。Windows ...

    PDF-WindowsPhone7Recipes-英文版.rar

    《Windows Phone 7 Recipes》是一本专注于Windows Phone 7开发技术的英文电子书,通过PDF格式...书中的实例和解决方案都是实际开发中常见的问题,对于有志于Windows Phone开发的程序员来说,是一份非常实用的参考资料。

    Programming windows phone 7

    不过,我们仍然可以从标题出发,尝试归纳总结一些关于Windows Phone 7开发的相关知识点。 ### Windows Phone 7编程概述 Windows Phone 7是微软推出的一款智能手机操作系统,其开发环境基于.NET Framework和...

    Windows Phone开发(五)-- 导航控制 代码

    本篇我们将深入探讨Windows Phone开发中的导航控制,并通过具体的代码实例进行解析。 首先,Windows Phone应用通常基于Silverlight或XAML构建,这两种技术都支持使用`Frame`和`Page`对象来实现导航功能。`Frame`是...

Global site tag (gtag.js) - Google Analytics