当前位置: 首页 > news >正文

Windows Phone 7 Belling‘s课堂(七) 独立存储空间(3)

隔离存储的第三节,大家先喝杯咖啡放松,今天的内容也是非常简单,我们就聊一件东东——用户设置。
当然了,可能翻译为应用程序设置合适一些,不过没关系,只要大家明白,它就是用于保存我们的应用程序的设置信息就行了。

它属于字典集合,每一项保存的数据都以键-值对的形式存储,键值是字符串类型,不能为null,注意啊,不然会引发异常,当然,估计也没有人这么无聊,把空值保存。

使用方法很简单,通过IsolatedStorageSettings的ApplicationSettings静态属必返回一个IsolatedStorageSettings实例,然后呢,你就可随便耍了。

1、要向集合加入数据可调用Add方法,它的定义如下:
     public void Add(string key, object value)
相信大家知道怎么用了。

2、使用Contains(string key)方法检测一下某个键是否存在,在读取上次保存的数据时,这是必须的。

3、Clear方法不用我介绍,一看名字就知道非常恐怖,一不小心,就把你写入的所有设置都清除,当然,在没有调用Save方法前,还没有写入隔离存储区的。

4、Remove(string key)方法,当你觉得某项设置不需要了,或者你觉得它人品太差,需要删除,可以调用该方法,参数更不用我说了,对就是要删除的项的键,比如你是QQ群主,你想踢掉某个人品值较低的成员时,你肯定要先知道TA的QQ号或昵称。

5、Save这个不用说了,你懂的。

事不宜迟,做个练习,你马上就会懂的。
这个例子很简单了,在两个文本框中输入值,当离开页面时保存,当用户导航到页面后自动加载保存到隔离存储的数据。

 

前台UI 代码:

View Code
 1 <phone:PhoneApplicationPage   
 2     x:Class="PhoneApp1.MainPage"  
 3    
 4     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"  
 5     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"  
 6     xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"  
 7     xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"  
 8     xmlns:d="http://schemas.microsoft.com/expression/blend/2008"  
 9     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"  
10     mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="768"  
11     FontFamily="{StaticResource PhoneFontFamilyNormal}"  
12     FontSize="{StaticResource PhoneFontSizeNormal}"  
13     Foreground="{StaticResource PhoneForegroundBrush}"  
14     SupportedOrientations="Portrait" Orientation="Portrait"  
15     shell:SystemTray.IsVisible="True">
16 
17     <!--LayoutRoot 是包含所有页面内容的根网格-->
18     <Grid x:Name="LayoutRoot" Background="Transparent">
19         <Grid.RowDefinitions>
20             <RowDefinition Height="Auto"/>
21             <RowDefinition Height="*"/>
22         </Grid.RowDefinitions>
23 
24         <!--TitlePanel 包含应用程序的名称和页标题-->
25         <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
26             <TextBlock x:Name="ApplicationTitle" Text="我的应用程序" Style="{StaticResource PhoneTextNormalStyle}"/>
27             <TextBlock x:Name="PageTitle" Text="应用程序设置" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
28         </StackPanel>
29 
30         <!--ContentPanel - 在此处放置其他内容-->
31         <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
32             <TextBlock Height="30" HorizontalAlignment="Left" Margin="33,50,0,0" Name="textBlock1" Text="姓名:" VerticalAlignment="Top" />
33             <TextBlock Height="30" HorizontalAlignment="Left" Margin="33,116,0,0" Name="textBlock2" Text="职业:" VerticalAlignment="Top" />
34             <TextBox Height="72" HorizontalAlignment="Left" Margin="116,25,0,0" Name="txtName" Text="" VerticalAlignment="Top" Width="292" />
35             <TextBox Height="72" HorizontalAlignment="Left" Margin="116,104,0,0" Name="txtPos" Text="" VerticalAlignment="Top" Width="292" />
36         </Grid>
37     </Grid>
38 
39 </phone:PhoneApplicationPage>  

后台CS代码:

View Code
 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Net;
 5 using System.Windows;
 6 using System.Windows.Controls;
 7 using System.Windows.Documents;
 8 using System.Windows.Input;
 9 using System.Windows.Media;
10 using System.Windows.Media.Animation;
11 using System.Windows.Shapes;
12 using Microsoft.Phone.Controls;
13 
14 using System.IO.IsolatedStorage;
15 
16 namespace PhoneApp1
17 {
18     public partial class MainPage : PhoneApplicationPage
19     {
20         // 声明一个IsolatedStorageSettings变量。  
21         IsolatedStorageSettings MySetting = IsolatedStorageSettings.ApplicationSettings;
22         // 构造函数  
23         public MainPage()
24         {
25             InitializeComponent();
26         }
27 
28         protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e)
29         {
30             base.OnNavigatedFrom(e);
31             MySetting["name"] = this.txtName.Text;
32             MySetting["pos"] = txtPos.Text;
33             // 保存  
34             MySetting.Save();
35         }
36 
37         protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
38         {
39             base.OnNavigatedTo(e);
40             // 当导航到页面,读入数据。  
41             if (MySetting.Contains("name"))
42             {
43                 txtName.Text = MySetting["name"] as string;
44             }
45             if (MySetting.Contains("pos"))
46             {
47                 txtPos.Text = MySetting["pos"] as string;
48             }
49         }
50     }
51 }

转载于:https://www.cnblogs.com/Belling/archive/2012/12/10/2810894.html

相关文章:

  • office web apps server安装部署
  • makefile
  • (转)程序员疫苗:代码注入
  • 为Linux-3.10.1内核添加系统调用
  • enterprise library 5 unity使用方法
  • 设计的MOS管三极管简单开关电路驱动能力不够2
  • 大数据||HDFS||NameNode启动过程详解
  • [短彩信]C#短彩信模块开发设计(2)——配置
  • Java里面CompletableFuture详解
  • 10个最受欢迎的Java类
  • 国内 CDN 产品发展历史和现状整理
  • [译] 用 Java 创造你的第一个区块链-第一部分
  • vi
  • 文件上传下载
  • Flex与后台交互 鼠标忙时状态
  • Apache Zeppelin在Apache Trafodion上的可视化
  • Flannel解读
  • flask接收请求并推入栈
  • Java 实战开发之spring、logback配置及chrome开发神器(六)
  • JavaScript-Array类型
  • Java多态
  • Java教程_软件开发基础
  • Laravel5.4 Queues队列学习
  • nfs客户端进程变D,延伸linux的lock
  • SpringCloud集成分布式事务LCN (一)
  • Transformer-XL: Unleashing the Potential of Attention Models
  • v-if和v-for连用出现的问题
  • 第2章 网络文档
  • 对象管理器(defineProperty)学习笔记
  • 分布式事物理论与实践
  • 将 Measurements 和 Units 应用到物理学
  • 类orAPI - 收藏集 - 掘金
  • 一道闭包题引发的思考
  • PostgreSQL 快速给指定表每个字段创建索引 - 1
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • !$boo在php中什么意思,php前戏
  • #{} 和 ${}区别
  • #AngularJS#$sce.trustAsResourceUrl
  • #LLM入门|Prompt#3.3_存储_Memory
  • #我与Java虚拟机的故事#连载02:“小蓝”陪伴的日日夜夜
  • (007)XHTML文档之标题——h1~h6
  • (a /b)*c的值
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (九)One-Wire总线-DS18B20
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • (转)Google的Objective-C编码规范
  • (轉貼) UML中文FAQ (OO) (UML)
  • .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分)