验证Windows Phone应用程序的隔离存储中的应用程序设置键值

时间:2010-03-23 02:14:45

标签: silverlight silverlight-3.0 windows-phone-7 isolatedstorage application-settings

我对所有这些c#Windows Phone编程都很陌生,所以这很可能是一个愚蠢的问题,但我需要知道任何...

            IsolatedStorageSettings appSettings =
                IsolatedStorageSettings.ApplicationSettings;

        if (!appSettings.Contains("isFirstRun"))
        {
            firstrunCheckBox.Opacity = 0.5;

            MessageBox.Show("isFirstRun not found - creating as true");

            appSettings.Add("isFirstRun", "true");
            appSettings.Save();
            firstrunCheckBox.Opacity = 1;
            firstrunCheckBox.IsChecked = true;
        }
        else
        {
            if (appSettings["isFirstRun"] == "true")
            {
                firstrunCheckBox.Opacity = 1;
                firstrunCheckBox.IsChecked = true;
            }
            else if (appSettings["isFirstRun"] == "false")
            {
                firstrunCheckBox.Opacity = 1;
                firstrunCheckBox.IsChecked = false;
            }
            else
            {
                firstrunCheckBox.Opacity = 0.5;
            }
        }          

我首先尝试检查我的应用程序设置独立存储中是否有特定的密钥,然后希望根据该密钥的值是“true”还是“false”使CheckBox显示为选中或取消选中。此外,当没有采取任何操作时,我将复选框的不透明度默认为0.5不透明度。

根据我的代码,我收到警告

可能的意外参考比较;要获得值比较,请将左侧投射到“字符串”

有人可以告诉我我做错了什么。我已经探索了将数据存储在Isolated Storage txt文件中,并且这样做有效,我现在正在尝试应用程序设置,并最终尝试下载和存储xml文件,以及创建和存储用户设置到xml文件中。我想尝试了解对我开放的所有选项,并使用哪些选项运行得更好更快

2 个答案:

答案 0 :(得分:3)

如果您将值检索的结果从appSettings明确地转换为字符串,如下所示:

        if ((string)appSettings["isFirstRun"] == "true")
        {
            firstrunCheckBox.Opacity = 1;
            firstrunCheckBox.IsChecked = true;
        }
        else if ((string)appSettings["isFirstRun"] == "false")
        {
            firstrunCheckBox.Opacity = 1;
            firstrunCheckBox.IsChecked = false;
        }
        else
        {
            firstrunCheckBox.Opacity = 0.5;
        }

这将使警告消失。

答案 1 :(得分:1)

IsolatedStorageSettings存储为Dictionary。因此,一般来说,您需要将其明确地转换为您需要使用的任何类型。