C# 将可观性收集保存到隔离存储

C# 将可观性收集保存到隔离存储,c#,class,xaml,windows-phone-8,isolatedstorage,C#,Class,Xaml,Windows Phone 8,Isolatedstorage,我正在制作一个笔记应用程序,用户可以在其中创建、编辑和删除笔记。一旦应用程序关闭,所有数据都应存储在隔离存储中。我创建了一个note类,它设置了以下一些属性: public string strNoteName { get; set; } public string strCreated { get; set; } public string strModified { get; set; } public bool boolIsProtected { get;

我正在制作一个笔记应用程序,用户可以在其中创建、编辑和删除笔记。一旦应用程序关闭,所有数据都应存储在隔离存储中。我创建了一个note类,它设置了以下一些属性:

    public string strNoteName { get; set; }
    public string strCreated { get; set; }
    public string strModified { get; set; }
    public bool boolIsProtected { get; set; }
    public string strNoteImage { get; set; }
    public string strNoteSubject { get; set; }
    public string strTextContent { get; set; }
它们被放入一个
可观察集合GetnotesRecord()
,可以使用列表框在主页面中显示。触摸屏上有一个用于
SelectionChange
的事件处理程序,它将项目传递到编辑页面,在编辑页面上可以编辑strTextContent和strnotame等项目

添加所有这些之后,我希望将数据保存到独立存储中,以便下次应用程序运行时可以加载这些数据

是否可以保存一个
可观察的集合
?如果是,当我稍后启动应用程序时,如何从隔离存储中检索它?

步骤:-

如果集合很大,则将ObservalbleCollection转换为xml字符串,并使用
IsolatedStorageSettings
类将其作为键值对存储

如果不是: 然后您可以像这样直接隔离存储设置

IsolatedStorageSettings Store { get { return IsolatedStorageSettings.ApplicationSettings; } }

    public T GetValue<T>(string key)
    {
        return (T)Store[key];
    }

    public void SetValue(string token, object value)
    {
        Store.Add(token, value);
        Store.Save();
    }
IsolatedStorageSettings存储{get{return IsolatedStorageSettings.ApplicationSettings;}
公共T GetValue(字符串键)
{
返回(T)存储[键];
}
public void SetValue(字符串标记、对象值)
{
存储。添加(令牌、值);
Store.Save();
}
用途:-

    ObservableCollection<Note> objCollection = new ObservableCollection<Note>()
    {
        new Note(){Checkbool = false,Checkme = "sd"},
        new Note(){Checkbool = false,Checkme = "sd1"},
        new Note(){Checkbool = false,Checkme = "sd2"}
    };

    // you can also make check whether values are present or 
    // by checking the key in storage.
    var isContainKey = Store.Contains("set")

    // save key value pair
    SetValue("set", objCollection); 

    // extract key value pair
    var value = GetValue<ObservableCollection<Note>>("set"); 
ObservableCollection objCollection=新的ObservableCollection()
{
新注释(){Checkbool=false,Checkme=“sd”},
新注释(){Checkbool=false,Checkme=“sd1”},
新注释(){Checkbool=false,Checkme=“sd2”}
};
//您还可以检查值是否存在
//通过检查存储中的密钥。
var isContainKey=Store.Contains(“set”)
//保存键值对
设置值(“设置”,对象集合);
//提取键值对
var值=GetValue(“设置”);

你应该更新你的标题,明确你想知道如何在你的WP8应用程序中保存值,而不是描述你的应用程序是关于什么的。提示:避免匈牙利符号,对公共成员使用
PascalCase
。你是否尝试保存你的收藏?当你尝试时发生了什么?如果您不确定如何保存对象,您是否研究过序列化?关于保存列表,您做了哪些研究?这有点重复,尽管没有任何公认的答案: