【问题标题】:Tombstoning a List on Windows Phone 8在 Windows Phone 8 上建立一个列表
【发布时间】:2013-12-24 19:38:34
【问题描述】:

我正在尝试在 wp 上保存列表框的状态。我用这个方法来墓碑文本框的内容,它工作得很好,但我遇到了字符串列表的问题:

基本上我有一个名为 beta 的字符串列表,我必须单击一个按钮来生成列表。所以我希望如果我关闭或停用我的应用程序然后重新启动它,列表就会显示而无需按下按钮

   List<string> beta;

   private void b_Click_1(object sender, RoutedEventArgs e)
   {
            List<string> beta = new List<string>{
                "string","string","string",
                "string","string","string",
                "string", };

            list.ItemsSource = beta;
            phoneAppService.State["_List"] = beta;
   }

   private void PhoneApplicationPage_Loaded_1(object sender, RoutedEventArgs e)
   {
            object myValue;

            if(phoneAppService.State.TryGetValue("_List", out List<myValue)> ){
                 list.ItemsSource  = myValue;
            }
   }

但出现问题:

phoneAppService.State.TryGetValue("MyValue", out List<myValue)>

虽然此方法适用于一个字符串,但不适用于列表。

我应该对字符串列表使用哪种方法?

编辑:

以下是我在 app.xaml.cs 类中的方法,当应用程序关闭、停用、启动或打开时我会调用这些方法:

 private void SaveState() {
            PhoneApplicationService phoneAppService = PhoneApplicationService.Current;

            IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;

            settings["MyValue"] = phoneAppService.State["MyValue"];

            if(settings.Contains("_List")){
                settings["_List"] = phoneAppService.State["_List"];
            }
        }

        private void LoadState() {
            PhoneApplicationService phoneAppService = PhoneApplicationService.Current;

            IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;

            string myValue = "";
            if(settings.TryGetValue<string>("MyValue", out myValue  )){

                phoneAppService.State["MyValue"] = myValue;
            }

           List<string> myValues;
            if (settings.TryGetValue<List<string>>("_List", out myValues))
            {
                phoneAppService.State["_List"] = myValues as List<string>;
            }
        }

正如我之前所说,此方法适用于在文本框中正确恢复的字符串,但不适用于字符串列表

【问题讨论】:

    标签: c# windows-phone-8 windows-phone tombstoning


    【解决方案1】:

    当您将 beta 添加到 State 时,它​​似乎已经是 List&lt;string&gt;。当你把它拉出来的时候,它应该已经是List&lt;string&gt;,所以你不需要在TryGetValue调用中把它变成List&lt;myvalue&gt;。它应该看起来更简单,例如:

    private void PhoneApplicationPage_Loaded_1(object sender, RoutedEventArgs e)
    {
        object myValue;
        if(phoneAppService.State.TryGetValue("_List", out myValue))
        {
            list.ItemsSource  = myValue as List<string>;
        }
    }
    

    【讨论】:

    • 我现在有这个错误:“无法将 List”转换为“out object”“
    • @user2505650 我做了一个小改动。
    • 代码编译但列表未恢复,我必须重新按下按钮以使列表生成我刚刚编辑了我的帖子以显示我在 app.xaml.cs 类中实现的功能
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-16
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多