原文:Windows 8 应用开发 - 本地数据存储

     在应用中通常会遇到用户主动或被动存储信息的情况,当应用关闭后这些数据仍然会存储在本地设备上,用户下次重新激活应用时会自动加载这些数据。下面将通过一个小实例演示如何把用户数据存储到本地,首先在Windows 8 应用中创建两个输入框:姓名、年龄。

<StackPanel Grid.Row="1" Margin="120,30,0,0">
<StackPanel Orientation="Horizontal" Margin="0,20,0,20">
<TextBlock Text="Name: " Style="{StaticResource BasicTextStyle}" Width="50"/>
<TextBox x:Name="nameInput" Width="200"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0,20,0,20">
<TextBlock Text="Age: " Style="{StaticResource BasicTextStyle}" Width="50"/>
<TextBox x:Name="ageInput" Width="200"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0,20,0,20">
<Button Content="Save" Click="Save_Button_Click"/>
<Button Content="Reset" Click="Reset_Button_Click"/>
</StackPanel>
</StackPanel>

      打开MainPage .xaml.cs 为了使用数据存储API,先添加using Windows.Storage 命名空间。在MainPage中使用ApplicationData.LocalSettings属性获取到应用设置本地存储空间。

ApplicationDataContainer localSettings = ApplicationData.Current.LocalSettings;

接下来在Save_Button_Click 事件中为localSettings 设置两个数值分别存储Name 和Age 数据。

private void Save_Button_Click(object sender, RoutedEventArgs e)
{
localSettings.Values["name"] = nameInput.Text;
localSettings.Values["age"] = ageInput.Text;
}

     下面要做的就是在应用激活时将已经保存在本地的数据加载进来,在MainPage .xaml.cs 程序中已经有一个LoadState 方法用来加载应用数据或状态,我们可以在这里完成数据的加载工作。

protected override void LoadState(Object navigationParameter, Dictionary<String, Object> pageState)
{ if (localSettings.Values.ContainsKey("name"))
{
nameInput.Text = localSettings.Values["name"].ToString();
} if (localSettings.Values.ContainsKey("age"))
{
ageInput.Text = localSettings.Values["age"].ToString();
}
}

     本地数据存储用于保存例如应用设置相关的重要信息,当然这些数据是留存本地设备中的,如果这些数据不再使用时也可以进行消除操作。如下代码就是将之前的姓名和年龄信息进行删除,数据删除后重新激活应用将无法加载。

private void Reset_Button_Click(object sender, RoutedEventArgs e)
{
localSettings.Values.Remove("name");
localSettings.Values.Remove("age");
nameInput.Text = "";
ageInput.Text = "";
}

源码下载

http://sdrv.ms/RxauDH

Windows 8 应用开发 - 本地数据存储的更多相关文章

  1. iOS开发技术分享(1)— iOS本地数据存储

    iOS开发技术分享(1)— iOS本地数据存储 前言: 我本是一名asp.net程序员,后来加入了iOS游戏开发队伍,到现在也有一年多的时间了.这一年来,每天都干到2.3点钟才睡觉,不为别的,只为了学 ...

  2. iOS开发——数据持久化&使用NSUserDefaults来进行本地数据存储

    使用NSUserDefaults来进行本地数据存储   NSUserDefaults适合存储轻量级的本地客户端数据,比如记住密码功能,要保存一个系统的用户名.密码.使用NSUserDefaults是首 ...

  3. cocos2d-html5开发之本地数据存储

    做游戏时常常须要的一个功能呢就是数据的保存了,比方游戏最高分.得到的金币数.物品的数量等等.cocos2d-html5使用了html5.所以html5的数据保存方法是对引擎可用的: html5本地数据 ...

  4. iOS APP之本地数据存储(译)

    最近工作中完成了项目的用户信息本地存储,查阅了一些本地存储加密方法等相关资料.期间发现了一个来自印度理工学院(IIT)的信息安全工程师的个人博客,写了大量有关iOS Application secur ...

  5. Android之ListView,AsyncTask,GridView,CardView,本地数据存储,SQLite数据库

    版权声明:未经博主允许不得转载 补充 补充上一节,使用ListView是用来显示列表项的,使用ListView需要两个xml文件,一个是列表布局,一个是单个列表项的布局.如我们要在要显示系统所有app ...

  6. 安卓开发_数据存储技术_sqlite

    一.SQLite SQLite第一个Alpha版本诞生于2000年5月,它是一款轻量级数据库,它的设计目标是嵌入式的,占用资源非常的低,只需要几百K的内存就够了.SQLite已经被多种软件和产品使用 ...

  7. Android本地数据存储复习

    Android本地数据存储复习 Android无论是应用层还是系统层都需要在本地保存一些数据,尤其在应用层中使用的就更为普遍,大体有这么几种:SharedPreference,file,sqlite数 ...

  8. 浏览器本地数据存储解决方案以及cookie的坑

    本地数据存储解决方案以及cookie的坑 问题: cookie过长导致页面打开失败 背景: 在公司的项目中有一个需求是打开多个工单即在同一个页面中打开了多个tab(iframe),但是需要在刷新时只刷 ...

  9. 安卓开发_数据存储技术_SharedPreferences类

    SharedPreferences类 供开发人员保存和获取基本数据类型的键值对. 该类主要用于基本类型,例如:booleans,ints,longs,strings.在应用程序结束后,数据仍旧会保存. ...

随机推荐

  1. data URI scheme及其应用

    data URI scheme通俗的来讲就是将一张图片直接塞到HTML中而不是通过HTTP请求去获取.这样从表面上看会降低一次HTTP的请求,实现了对于网页的优化(只是看了其它一些文章data URI ...

  2. windows下搭建node.js及npm的工作环境

    近期在研究数据可视化D3框架,决定在windows下搭建一个nodejs及npm的工作环境,在网上查了n篇文章,别管是编译源代码安装也好.还是使用node.msi格式安装包也好,总是有问题.终于,功夫 ...

  3. zoj 3870

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5518 题意:n个数,从中选出两个数,问这两个数的异或值大于两个数较大 ...

  4. lightoj 1297(三分)

    传送门:Largest Box 题意:长度为L宽度为W的纸四个角去掉x*x的正方形,然后形成一个长方体,问能组成长方体的最大体积为多少. 分析:三分x求最值. #include <cstdio& ...

  5. latex命令替换之\newcommand

    有时候我们在用latex写文档的时候不想写很长的命令,那么我们自己定义一个新的命令来替换一段代码. 举例如下: \usepackage{booktabs} \usepackage{multirow} ...

  6. C++ STL copy函数效率分析

    在C++编程中,经常会配到数据的拷贝,如数组之间元素的拷贝,一般的人可能都会用for循环逐个元素进行拷贝,在数据量不大的情况下还可以,如果数据量比较大,那么效率会比较地下.而STL中就提供了一个专门用 ...

  7. Android 编译时出现r cannot be resolved to a variable

    问题:编译出现r cannot be resolved to a variable 原因:SDK的Tools没有安装 解决:在Android SDK Manager中安装Tools部分,包括如下4项, ...

  8. OSG+VS2010+win7环境搭建

    Win7下 osg+vs2010环境搭建 一.相关准备 a) Osg源代码 当前最新版:OpenSceneGraph的3.0.0.zip 下载链接: http://www.openscenegraph ...

  9. 更改Oracle实例的字符集

    (1).数据库服务器字符集select * from nls_database_parameters 来源于props$,是表示数据库的字符集. (2).服务端字符集环境select * from n ...

  10. shortcut switch in terminal start pos & end pos

    ctrl a ctrl e switch in terminal start pos & end pos