【问题标题】:Can we restore multiple values from local settings(Application data)我们可以从本地设置中恢复多个值吗(应用程序数据)
【发布时间】:2015-09-18 06:14:28
【问题描述】:

我正在使用 Windows phone 8.1 应用程序。在我的项目中,当用户从文本框中输入文本时,它应该显示在列表视图中。当用户重新启动应用程序时,应显示整个列表项。我尝试了多种方式,但在下一次应用启动时只显示一个值。请帮帮我

string ss = text_input.Text;
list_view.Items.Add(ss);
data.Values["add"] = ss;

只检索一个值

if (data.Values["add"] != null)
      {
          list_view.Items.Add(data.Values["add"].ToString());
      }

应显示所有值。

【问题讨论】:

  • 如果我没看错,您的 data.Values["add"] 总是指单个值,不是吗?因此,在您发布的代码中,您正在处理单个列表项。其他人呢?
  • 请帮助我如何添加多个项目。是否可以恢复多个值。如果是这样怎么......??
  • 我对那个例子有点困惑。使用 foreach 我认为可以做到。但是如何循环.. var ss = text_input.Text; list_view.Items.Add(ss); foreach (ListViewItem item in list_view.Items) { data.Values["add"] = ss; }

标签: c# visual-studio windows-phone-8.1


【解决方案1】:

您可以将所有值连接到一个字符串中。例如:

const string ITEMS_SEPERATOR = "#";
var values = string.Join(ITEMS_SEPERATOR, list_view.Items.Select(s => s.ToString() /*or whatever you want to save*/);
data.Values["add"] = values;

那么当你想恢复你的设置时:

forea(var item in data.Values["add"].Split(ITEMS_SEPERATOR))
{
list_view.Items.Add(item);
}

请注意,如果您的项目包含“#”,它将失败。所以更好的方法是使用一些序列化器(二进制或json或其他)。如果有很多项目,我认为应该将其保存到文件中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-02
    • 1970-01-01
    • 2013-08-18
    • 1970-01-01
    • 1970-01-01
    • 2011-04-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多