c# class xaml windows-phone-8 isolatedstorage

c# - Guardar ObservableCollection en almacenamiento aislado



class xaml (1)

Estoy en el proceso de crear una aplicación para tomar notas, en la cual el usuario puede crear, editar y borrar notas. Una vez que se cierra la aplicación, todos los datos deben almacenarse en un almacenamiento aislado. Creé una clase de nota que establece algunas propiedades a continuación:

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

Estos se ponen en un ObservableCollection<note> GetnotesRecord() que se puede mostrar en la página principal utilizando un cuadro de lista. Al toque, hay un controlador de eventos para SelectionChange que pasa el elemento a la página de edición donde se pueden editar elementos como strTextContent y strNoteName.

Después de agregar todo esto, quiero que los datos se guarden en almacenamiento aislado para que puedan cargarse la próxima vez que se ejecute la aplicación.

¿Es posible guardar un ObservableCollection<note> ? En caso afirmativo, ¿cómo puede recuperarse del almacenamiento aislado cuando estoy iniciando la aplicación más tarde?


Pasos: -

Si su colección es grande, convierta su ObservalbleCollection en una cadena xml y guárdela usando la clase IsolatedStorageSettings como un par de clave-valor.

Si no es así: - entonces puede IsolatedStorageSettings directamente como este

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

Uso: -

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