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

Windows Phone开发(29):隔离存储C

Windows Phone开发(29):隔离存储C
原文: Windows Phone开发(29):隔离存储C

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

它属于字典集合,每一项保存的数据都以键-值对的形式存储,键值是字符串类型,不能为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这个不用说了,你懂的。


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

<phone:PhoneApplicationPage 
    x:Class="PhoneApp1.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
    xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="768"
    FontFamily="{StaticResource PhoneFontFamilyNormal}"
    FontSize="{StaticResource PhoneFontSizeNormal}"
    Foreground="{StaticResource PhoneForegroundBrush}"
    SupportedOrientations="Portrait" Orientation="Portrait"
    shell:SystemTray.IsVisible="True">

    <!--LayoutRoot 是包含所有页面内容的根网格-->
    <Grid x:Name="LayoutRoot" Background="Transparent">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>

        <!--TitlePanel 包含应用程序的名称和页标题-->
        <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
            <TextBlock x:Name="ApplicationTitle" Text="我的应用程序" Style="{StaticResource PhoneTextNormalStyle}"/>
            <TextBlock x:Name="PageTitle" Text="应用程序设置" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
        </StackPanel>

        <!--ContentPanel - 在此处放置其他内容-->
        <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
            <TextBlock Height="30" HorizontalAlignment="Left" Margin="33,50,0,0" Name="textBlock1" Text="姓名:" VerticalAlignment="Top" />
            <TextBlock Height="30" HorizontalAlignment="Left" Margin="33,116,0,0" Name="textBlock2" Text="职业:" VerticalAlignment="Top" />
            <TextBox Height="72" HorizontalAlignment="Left" Margin="116,25,0,0" Name="txtName" Text="" VerticalAlignment="Top" Width="292" />
            <TextBox Height="72" HorizontalAlignment="Left" Margin="116,104,0,0" Name="txtPos" Text="" VerticalAlignment="Top" Width="292" />
        </Grid>
    </Grid>
 
</phone:PhoneApplicationPage>


 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;

using System.IO.IsolatedStorage;

namespace PhoneApp1
{
    public partial class MainPage : PhoneApplicationPage
    {
        // 声明一个IsolatedStorageSettings变量。
        IsolatedStorageSettings MySetting = IsolatedStorageSettings.ApplicationSettings;
        // 构造函数
        public MainPage()
        {
            InitializeComponent();
        }

        protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e)
        {
            base.OnNavigatedFrom(e);
            MySetting["name"] = this.txtName.Text;
            MySetting["pos"] = txtPos.Text;
            // 保存
            MySetting.Save();
        }

        protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);
            // 当导航到页面,读入数据。
            if (MySetting.Contains("name"))
            {
                txtName.Text = MySetting["name"] as string;
            }
            if (MySetting.Contains("pos"))
            {
                txtPos.Text = MySetting["pos"] as string;
            }
        }
    }
}



 

好的,看,是不是很简单?

隔离存储就吹到这儿了,从下一篇文章开始,我们不玩抽象,我们来一些“所见即得”的东东,一起当一回山寨画家,从下一节开始,我们一起讨论图形、画刷、绘图相关的内容。

posted on 2014-03-05 15:51 NET未来之路 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/lonelyxmas/p/3582658.html

相关文章:

  • 马宁的Windows Phone 7开发教程(3)——XNA下使用MessageBox和软键盘
  • STP详解
  • 又见西安
  • 一次失败的网购:在兰蔻官网订购的货不对版
  • 多线程试题汇总
  • CentOS上配置LVS DR集群
  • Android应用加入微信分享
  • nowrap要与回车换行符结合才有意义
  • XMPP 基础
  • 初学3ds Max,做了个雪人,大家来评评哪个更好看
  • 精彩十年(3)——初露锋芒
  • Java常用工具类的使用
  • 精彩十年(4)——缔造神话
  • HibernateDaoSupport实现分页技术总结
  • 新作《.NET 4.0面向对象编程漫谈》之序“穿越梦想、起锚远航”
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • 《剑指offer》分解让复杂问题更简单
  • 【MySQL经典案例分析】 Waiting for table metadata lock
  • CSS3 变换
  • JavaScript DOM 10 - 滚动
  • Java教程_软件开发基础
  • js学习笔记
  • miaov-React 最佳入门
  • nginx 负载服务器优化
  • node入门
  • 番外篇1:在Windows环境下安装JDK
  • 翻译:Hystrix - How To Use
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 人脸识别最新开发经验demo
  • 日剧·日综资源集合(建议收藏)
  • 如何抓住下一波零售风口?看RPA玩转零售自动化
  • 数组大概知多少
  • 移动端解决方案学习记录
  • 译米田引理
  • zabbix3.2监控linux磁盘IO
  • #NOIP 2014# day.1 T2 联合权值
  • #QT(TCP网络编程-服务端)
  • #考研#计算机文化知识1(局域网及网络互联)
  • (06)金属布线——为半导体注入生命的连接
  • (12)目标检测_SSD基于pytorch搭建代码
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • (定时器/计数器)中断系统(详解与使用)
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程
  • ***详解账号泄露:全球约1亿用户已泄露
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .netcore 如何获取系统中所有session_如何把百度推广中获取的线索(基木鱼,电话,百度商桥等)同步到企业微信或者企业CRM等企业营销系统中...
  • .NET的微型Web框架 Nancy
  • .NET框架设计—常被忽视的C#设计技巧