このクラスを Windows Phone ApplicationSettings にシリアル化および逆シリアル化しようとしていますが、何らかの理由で、またはプロパティではなく のみItems
が永続化されます。理由についてのアイデアは大歓迎です!Title
LastChanged
クラス:
public class VehicleCollection : ObservableCollection<Vehicle>
{
public string Title { get; set; }
public DateTime LastChanged { get; set; }
public bool HasNoItems { get { return Items.Count == 0; } }
public VehicleCollection() { }
public VehicleCollection(string title, DateTime lastChanged)
{
Title = title;
LastChanged = lastChanged;
}
protected override void OnCollectionChanged(NotifyCollectionChangedEventArgs e)
{
base.OnCollectionChanged(e);
OnPropertyChanged(new PropertyChangedEventArgs("HasNoItems"));
}
}
持続ロジック:
public static bool SavePersistent(string key, object value)
{
if (null == value)
return false;
var store = IsolatedStorageSettings.ApplicationSettings;
if (store.Contains(key))
store[key] = value;
else
store.Add(key, value);
store.Save();
return true;
}
public static T LoadPersistent<T>(string key)
{
var store = IsolatedStorageSettings.ApplicationSettings;
if (!store.Contains(key))
return default(T);
return (T)store[key];
}
編集:動作が明らかなサンプルプロジェクトを作成しました。http://www.fileswap.com/dl/2ar0ygF8w7/
- アプリを実行し、静的データが作成されるのを確認します
- 「データを保存」を押して、IsolatedStorage に保存します
- アプリを閉じて再実行する
- 永続化されていないため、両方のコレクションのタイトルが消えるのを確認してください