metro 应用程序的数据有三种存储方式
第一种是打开一个FileSavePicker 让用户选择存储的位置
第二种是可以获取当前metro程序安装包的路径 然后保存在安装路径下的位置
// Package.Current.InstalledLocation.CreateFileAsync(...
// Package.Current.InstalledLocation.GetFileAsync(...
第三种是 Provides access to the application data store.
//Windows.Storage.ApplicationData.Current
在这里我先介绍如何把数据存储在 application data store
首先介绍一个工具类 ObjectStorageHelper (Generic Object Storage Helper for WinRT)
源码如下:
public class Customer
{
public string CustomerID { get; set; }
public string CustomerName { get; set; }
public string Address { get; set; }
}
//保存数据
private void btnSave_Click(object sender, RoutedEventArgs e)
{
var customerList = new List {
new Customer{ CustomerID="1",CustomerName="John",Address="Benjing"},
new Customer{ CustomerID="2",CustomerName="Lily",Address="Shanghai"},
new Customer{ CustomerID="3",CustomerName="Smith",Address="Guangzhou"},
new Customer{ CustomerID="4",CustomerName="Tom",Address="Shenzhen"}
};
var objectStorageHelper = new ObjectStorageHelper(StorageType.Local);
objectStorageHelper.SaveAsync(customerList);
}
//保存数据
private void btnSave_Click(object sender, RoutedEventArgs e)
{
var customerList = new List {
new Customer{ CustomerID="1",CustomerName="John",Address="Benjing"},
new Customer{ CustomerID="2",CustomerName="Lily",Address="Shanghai"},
new Customer{ CustomerID="3",CustomerName="Smith",Address="Guangzhou"},
new Customer{ CustomerID="4",CustomerName="Tom",Address="Shenzhen"}
};
var objectStorageHelper = new ObjectStorageHelper(StorageType.Local);
objectStorageHelper.SaveAsync(customerList);
}
//获取数据
async private void btnShow_Click(object sender, RoutedEventArgs e)
{
var objectStorageHelper = new ObjectStorageHelper(StorageType.Local);
//Get the object from the storage folder
List customerList = await objectStorageHelper.LoadAsync();
}