您的位置:首页 > 其它

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

2012-11-03 12:18 399 查看
     在应用中通常会遇到用户主动或被动存储信息的情况,当应用关闭后这些数据仍然会存储在本地设备上,用户下次重新激活应用时会自动加载这些数据。下面将通过一个小实例演示如何把用户数据存储到本地,首先在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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: