【问题标题】:Opening an empty list in c#在 C# 中打开一个空列表
【发布时间】:2013-11-28 23:15:45
【问题描述】:

我正在制作一个应用程序,它使用一个列表的内容来打开另一个列表。但是要让应用正常运行,它需要从 IsolatedStorage 中打开一个不包含任何内容的列表,该列表存在,但它是空的。

在第一个 MainPage.xaml.cs 中,我创建了一个新列表,将列表保存到 IsolatedStorage,然后将列表的名称传递给另一个 SecondPage.xaml.cs 页面:

String listName; //Declared global in class

IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;

List<String> emptyList = new List<String>();
settings.Add(listName, emptyList);
settings.Save();

//Here i'm passing it to the second page

NavigationService.Navigate(new Uri("/subjectsPage.xaml?key=" + listName, UriKind.Relative));

这是处理此信息并尝试打开空列表的第二个类

IsolatedStorageSettings settings; //Declared global in class

settings = IsolatedStorageSettings.ApplicationSettings; //Executed in public secondPage() method

辅助方法:

        private static object readSetting(string key)
    {
        return IsolatedStorageSettings.ApplicationSettings.Contains(key) ? IsolatedStorageSettings.ApplicationSettings[key] : null;
    }

打开列表本身的代码,但是在这里失败了,并且在“//Failed”行所在的地方调用了异常:

List List; //Declared global in class

protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        if (NavigationContext.QueryString.ContainsKey("key"))
        {
            string listName= NavigationContext.QueryString["key"];
            try
            {
                //Clear listBoxjust in case
                listBox.Clear();

                List = readSetting(listName) != null ? (List<String>)readSetting(listName) : new List<String>();
            }
            catch (Exception)
            {
              //Failed
            }
        }
    }

您对如何解决此问题有任何想法吗?例如,我可以在列表中添加一个空字符串,然后在加载列表后在其他页面执行 onNavigatedTo() 时将其删除???

【问题讨论】:

    标签: c# list xaml windows-phone-8 windows-phone


    【解决方案1】:

    我实际上发现,错误是我试图清除一个未初始化的列表,如下所示:

                //Clear listBoxjust in case
                listBox.Clear();
    

    【讨论】:

    • 这太荒谬了——你总是可以清除一个空列表!再说一遍 - 你得到什么例外?
    • 我认为“空”和“空”这两个词之间存在一些混淆。它们是两个不同的概念,请确保在提问时使用正确的词语;)
    • 我得到一个 nullReferenceException,现在看到这可能是由于没有初始化它:) 是的,我会尽量让它们分开 KooKiz
    猜你喜欢
    • 1970-01-01
    • 2017-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多