Я не знаю, правильный ли это путь, но он работает; Вот пример кода:
Property(x => x.Strokes).InPhoneState().RestoreAfterViewReady().Configure(x =>
{
x.Save = SaveStrokes;
x.Restore = RestoreStrokes;
});
с их реализациями, такими как:
void SaveStrokes(BoardViewModel vm, Func<string> serialize, StorageMode nMode)
{
IsolatedStorageSettings.ApplicationSettings[vm.DisplayName + "ThePropertyKey"] =
// ...get data from vm and serialize
}
и наоборот:
void RestoreStrokes(BoardViewModel vm, Func<string> serialize, StorageMode nMode)
{
// use IsolatedStorageSettings.ApplicationSettings[vm.DisplayName + "ThePropertyKey"]
// to check if the key exists, and if it is there get the serialized data and deserialize
}
Что касается штрихов, я использую свой собственный класс сериализации, так как мой обычный инструмент для этой цели (SharpSerializer), похоже, испытывает проблемы при восстановлении (он выдает неоднозначное исключение отражения соответствия).