WP7 应用数据存储IsolatedStorage 篇
程序员文章站
2022-07-03 18:38:48
windows phone 7 在独立存储(isolated storage)功能方面提供了两种数据存储方法:文件存储(aspx" target=_blank>isolatedstoragefile...
windows phone 7 在独立存储(isolated storage)功能方面提供了两种数据存储方法:文件存储(aspx" target=_blank>isolatedstoragefile)、键/值存储(isolatedstoragesettings)。通过独立存储我们能够对应用程序数据进行保存,例如:用户设置、程序运行状态等。本篇主要讲解isolatedstoragesettings 使用方法。
isolatedstoragesettings 实际上是提供了一个dictionary<tkey, tvalue> 泛型类,通过键值tkey 与数值tvalue 的映射将应用程序的数据存储起来。首先在程序中通过isolatedstoragesettings 类创建一个全局settings,同时再定义一个整型变量以便后续测试。
isolatedstoragesettings settings = isolatedstoragesettings.applicationsettings; int testint = 10;
添加两个按键:一个用来为testint 执行“+1”操作,另一个用来显示当前testint 的值。
private void addbtn_click(object sender, routedeventargs e) { testint++; } private void showbtn_click(object sender, routedeventargs e) { messagebox.show(testint.tostring()); }
接下来再添加一个save 按键,用于保存testint 数值和textbox 数值。先使用contains(string key) 方法检查当前是否存在“textbox”键值,如果没有则使用add(string key, object value) 方法添加该键值,键对应的数值类型可按开发需要自行定义,本例中则使用了string 和int 两种类型。
private void savebtn_click(object sender, routedeventargs e) { if (!settings.contains("textbox")) { settings.add("textbox", textbox.text); } else { settings["textbox"] = textbox.text; } if (!settings.contains("integer")) { settings.add("integer", testint); } else { settings["integer"] = testint; } }
当每次重新启动程序时,可以直接从settings 中获取相应数据。为保险起见使用trygetvalue<t>(string key, out t value) 获取指定键的值,若键值不存在会返回false。
public mainpage() { initializecomponent(); string textval; if (settings.trygetvalue<string>("textbox", out textval)) { textbox.text = textval; } else { textbox.text = "no text"; } int intval; if (settings.trygetvalue<int>("integer", out intval)) { testint = intval; } else { testint = 10; } }
附上xaml 代码:
<textbox x:name="textbox" width="460" height="72" /> <button x:name="addbtn" content="add" width="160" height="72" click="addbtn_click"/> <button x:name="showbtn" content="show" width="160" height="72" click="showbtn_click"/> <button x:name="savebtn" content="save" width="160" height="72" click="savebtn_click"/>
测试运行
如果不进行保存,每次启动textbox 都会显示“no text”,testint 数值为10。
点击“save”后,退出程序重新进入,修改的内容便会保存下来。
相关资料
上一篇: mysql 写入中文乱码