c# - 将 ObservableCollection 保存到隔离存储

标签 c# class xaml windows-phone-8 isolatedstorage

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

    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; }

这些被放入 ObservableCollection<note> GetnotesRecord() 中可以使用列表框显示在主页中。触摸时有一个事件处理程序 SelectionChange它将项目传递到编辑页面,其中可以编辑 strTextContent 和 strNoteName 等项目。

添加所有这些后,我希望将数据保存到隔离存储中,以便下次应用运行时可以加载。

是否可以保存 ObservableCollection<note> ?如果是,当我稍后启动应用程序时如何从隔离存储中检索它?

最佳答案

步骤:-

如果您的集合很大,那么将您的 ObservalbleCollection 转换为 xml 字符串并使用 IsolatedStorageSettings 类将其存储为键值对。

如果不是:- 然后你可以像这样直接使用 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();
    }

用法:-

    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"); 

关于c# - 将 ObservableCollection 保存到隔离存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24813015/

相关文章:

c# - 获取星期几的日期

javascript - 创建类的函数

class - "Statement is not accessible"本地类声明后出错

c# - 在 Windows Phone 8 中画一条垂直线

c# - 如何从用户控件的依赖属性中设置/获取值?

c# - 如何获取 Azure CloudBlobContainer 的大小

java - 尝试获取具有通用参数的类

c# - 在 bing map xaml 中绑定(bind)位置

c# - XAML 绑定(bind)到标签

c# - 如何将 ListView 设置为开始显示最后一个项目而不是在 Xamarin Forms 中?