您的位置:首页 > 其它

WP7 Isolated Storage 系列 - 3.使用IsolatedStorageSettings存储数据

2013-01-29 14:19 211 查看
这是第三篇关于系列短文章“WP7 Isolated Storage系列”,专注于真实实用,并且有源代码的例子,而不是存粹理论。接下来我将要讨论关于在IsolatedStorageSettings中存储数据。
·
WP7 Isolated Storage 系列 - 1.Isolated Storage
简介

·
WP7 Isolated Storage 系列 - 2.创建文件夹和文件

·
WP7 Isolated Storage 系列 - 3.使用IsolatedStorageSettings存储数据

·
WP7 Isolated Storage 系列 - 4.读取和存储文本文件

·
WP7 Isolated Storage 系列 - 5.使用XmlSerializer读取和存储XML文件

·
WP7 Isolated Storage 系列 - 6.使用XmlWriter读取和存储XML文件

·
WP7 Isolated Storage 系列 - 7.读取和存储图像

·
WP7 Isolated Storage 系列 - 8.读取和存储拍摄的图像

·
WP7 Isolated Storage 系列 - 9.读取和存储二进制文件

·
WP7 Isolated Storage 系列 - 10.文件操作

·
WP7 Isolated Storage 系列 - 11.建议和最佳实践

·
WP7 Isolated Storage 系列 - 12.开源数据库和帮助库文件

让我们从创建一个简单的Windows Phone 7工程开始。下一步需要添加下面的namespaces到MainPage.xaml.cs中去(或者你可以在另一个页面中使用这个代码):

using System.IO.IsolatedStorage;

基本上存储数据到WP7 IsolatedStorage最容易的方法就是使用IsolatedStorageSettings类,它是一个在Isolated Storage中的键-值对Dictionary<TKey,TValue>。一个典型的应用就是保存settings,比如每一页面显示的图像,页面布局选项等等。

注意:IsolatedStorageSettings只支持键/值对形式的数据存储。

保存字符串值到IsolatedStorageSettings中

在这个例子中我们将要存储一个字符串形式的email:

public void SaveStringObject()
{
var settings = IsolatedStorageSettings.ApplicationSettings;
settings.Add("myemail", "support@windowsphonnegeek.com");
}

通过IsolatedStorageSettings获取字符串值

在这个例子中我们将要从IsolatedStorageSettings中读取之前存储的字符串email:

//Retrieve email Data
var location = settings["myemail"].ToString();
settings["myemail"] = "support@windowsphonnegeek.com";

保存复合对象到IsolatedStorageSettings中

在这个例子中我们将要存储一个复合对象。我们将要创建一个示例类City,这个类代表城市。之后我们会通过这个类存储关于城市的数据到IsolatedStorageSettings中去。

public void SaveCompositeObject()
{
var settings = IsolatedStorageSettings.ApplicationSettings;
City city = new City { Name = "London", Flag = "uk.png" };
settings.Add("city", city);
}
public class City
{
public string Name
{
get;
set;
}
public string Flag
{
get;
set;
}
}

从IsolatedStorageSettings中获取复合对象

在这个例子中我们将会从IsolatedStorageSettings中获取之前存储的City对象。

//Retrieve City Data

City City1;

settings.TryGetValue<City>("city", out City1);

将存储在IsolatedStorageSettings中的数据绑定到对象

这个例子向我们展示如何将存储在IsolatedStorageSettings中的数据绑定到一个复合对象:

<TextBlock Text="{Binding Name}" FontSize="50"/>
<Image Source="{Binding Flag}" Stretch="None" HorizontalAlignment="Left"/>
//Retrieve City Data
City City1;
settings.TryGetValue<City>("city", out City1);
this.DataContext = City1;

下面是这个结果截图:



最佳实践

在获取数据之前总是要检查目标对象是否存在于IsolatedStorageSetttings中!注意所有的键/值对在IsolatedStorageSettings中都是唯一的,所以在保存数据到settings之前必须要确保这个键是唯一的。你可以使用像下面这样的代码去检查唯一性:

if(settings.Contains("myemail"))
{
...
}

你可以从这个获取所有的源代码:WP7IsolatedStorageSettingsExample

在这篇文章中我谈到了在IsolatedStorageSettings中的数据存储。我希望这个能对你有帮助。敬请期待接下来的文章。

原文链接:http://www.windowsphonegeek.com/tips/all-about-wp7-isolated-storage-store-data-in-isolatedstoragesettings
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: