gpt4 book ai didi

c# - 如何在 Windows Store App 中保存 ObservableCollection?

转载 作者:可可西里 更新时间:2023-11-01 11:13:24 25 4
gpt4 key购买 nike

我正在基于拆分应用程序模板创建 Windows 应用商店应用程序。从 SampleDataSource 保存数据以备后用的最佳方法是什么?

我试过:

Windows.Storage.ApplicationDataContainer roamingSettings = Windows.Storage.ApplicationData.Current.RoamingSettings;
roamingSettings.Values["Data"] = AllGroups;

它抛出异常:“不支持这种类型的数据”。

最佳答案

RoamingSettings只支持 runtime data types (Uri 除外);此外,每个设置和总共可以保存多少数据是有限制的。

你最好使用 RoamingFolder (或者可能是 LocalFolder)用于存储方面。

对于序列化方面,您可以尝试 DataContractSerializer .如果你有这样的类(class):

public class MyData
{
public int Prop1 { get; set; }
public int Prop2 { get; set; }
}
public ObservableCollection<MyData> coll;

然后写成如下

var f = await Windows.Storage.ApplicationData.Current.LocalFolder.CreateFileAsync("data.txt");
using ( var st = await f.OpenStreamForWriteAsync())
{
var s = new DataContractSerializer(typeof(ObservableCollection<MyData>),
new Type[] { typeof(MyData) });
s.WriteObject(st, coll);

然后像这样阅读

using (var st = await Windows.Storage.ApplicationData.Current.LocalFolder.OpenStreamForReadAsync("data.txt"))
{
var t = new DataContractSerializer(typeof(ObservableCollection<MyData>),
new Type[] { typeof(MyData) });
var col2 = t.ReadObject(st) as ObservableCollection<MyData>;

}

关于c# - 如何在 Windows Store App 中保存 ObservableCollection?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13923600/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com