欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

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。

WP7 应用数据存储IsolatedStorage 篇 WP7 应用数据存储IsolatedStorage 篇

点击“save”后,退出程序重新进入,修改的内容便会保存下来。

WP7 应用数据存储IsolatedStorage 篇 WP7 应用数据存储IsolatedStorage 篇

相关资料

system.io.isolatedstorage

isolatedstoragefile