原文: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. Delphi接口的底层实现(接口在内存中仍然有其布局,它依附在对象的内存空间中,有汇编解释)——接口的内存结构图,简单清楚,深刻 good

    引言 接口是面向对象程序语言中一个很重要的元素,它被描述为一组服务的集合,对于客户端来说,我们关心的只是提供的服务,而不必关心服务是如何实现的:对于服务端的类来说,如果它想实现某种服务,实现与该服务相 ...

  2. Java魔法堂:JVM的运行模式 (转)

    一.前言 JVM有Client和Server两种运行模式.不同的模式对应不同的应用场景,而JVM也会有相应的优化.本文将记录JVM模式的信息,以便日后查阅. 二.介绍 在$JAVA_HOME/jre/ ...

  3. Windows调试工具入门—1

    NetRoc http://www.DbgTech.net 引子 Debugging Tools for Windows是微软发布的一套用于软件调试的工具包(后面如果没有指明,那么我会使用WinDbg ...

  4. Advanced Data Structures

    Advanced Data Structures Advanced Data Structures

  5. WCF(1)----服务创建

    本例中,我们通过一个关于Camera的服务为例子来说明WCF的开发流程,该服务比较简单,只是用来实现对Camera的添加,枚举,删除等操作. 详细步骤如下: 1:创建一个WCF Service Lib ...

  6. 解析php混淆加密解密的手段,如 phpjm,phpdp神盾,php威盾

    原文 解析php混淆加密解密的手段,如 phpjm,phpdp神盾,php威盾 php做为一门当下非常流行的web语言,常常看到有人求解密php文件,想当年的asp也是一样.一些人不理解为什么要混淆( ...

  7. hdu 2838 Cow Sorting(树状数组)

    Cow Sorting Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tota ...

  8. 使用WiX Toolset创建.NET程序发布Bootstrapper(安装策略管理)(一)——初识WiX

    原文:使用WiX Toolset创建.NET程序发布Bootstrapper(安装策略管理)(一)--初识WiX Visual Studio 打包安装七宗罪 开发.NET的人,肯定会使用Visual ...

  9. hdu2870(dp求最大子矩阵)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2870 分析:分别转换成'a','b','c'三种来求,其实就跟hdu1505一样了... #inclu ...

  10. 2014ACM/ICPC亚洲区西安站 F题 color (组合数学,容斥原理)

    题目链接:传送门 题意: n个格子排成一行.我们有m种颜色.能够给这些格子涂色,保证相邻的格子的颜色不同 问,最后恰好使用了k种颜色的方案数. 分析: 看完题目描写叙述之后立刻想到了一个公式 :C(m ...