- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将此类序列化和反序列化为 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];
}
最佳答案
我最好的猜测是,问题是由于您从 ObservableCollection 继承了 VehicleCollection 类,并且序列化和反序列化中有一段代码,如“如果对象是 ObservableCollection”。我已经尝试了您的示例解决方案,成员的 getter 根本没有在序列化时被调用,setter 也没有在反序列化时被调用。
解决方案是像这样重构您的 VehicleCollection 类:
public class VehicleCollection
{
public string Title { get; set; }
public DateTime LastChanged { get; set; }
public bool HasNoItems { get { return Items.Count == 0; } }
public VehicleCollection()
{
Items = new ObservableCollection<Vehicle>()
}
public VehicleCollection(string title, DateTime lastChanged) :this()
{
Title = title;
LastChanged = lastChanged;
}
public ObservableCollection<Vehicle> Items
}
当然,坏事是 VehicleCollection 需要实现 INotitifyPropertyChanged 才能触发 HasNoItems。无论如何 - 如果我在您的示例解决方案中以这种方式更改它,它就会起作用。
关于serialization - IsolatedStorageSettings.ApplicationSettings 不保留所有属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17013848/
我正在尝试将此类序列化和反序列化为 Windows Phone ApplicationSettings,但由于某种原因,只有 Items 被保留,而不是 Title 或 LastChanged 属性。
我有一个对象要存储在 IsolatedStorageSettings 中,我不想在应用程序重新启动时重用它。 我的问题在于我出于某种原因编写的代码在重新启动时尝试访问 key 时不记得该对象。 nam
我读到 wp8 中存储在独立存储中的数据是永久的。但我对“永久”一词有点困惑。我没有 wp8 设备,所以无法在真实设备上进行检查。我尝试了模拟器,一切正常,直到我关闭模拟器。我想知道在关闭应用程序或关
在下面的代码中,我得到了 ArgumentException。此代码检查是否在 IsolatedStorageSetting 中设置了 key。如果不存在,则创建它。此时异常发生,消息 - value
我正在编写一个 WP7 (Mango) 应用程序。我将值存储在 WP7isolatedStorageSettings.ApplicationSettings 中,然后调用 IsolatedStorag
我的应用程序中有键值 IsolatedStorage,它包含 4 个变量:2 个 double 值、1 个 bool 值和 1 个类对象的 ObservableCollection。当我将 Obser
这是一个有趣的奇怪行为(阅读:错误)。我的简单测试应用程序中有以下两种方法: private void Save() { var settings = Isolated
我正在为 Windows Phone 开发应用程序。此应用程序使用后台代理(计划任务)。 主应用程序在 IsolatedStorageSettings.ApplicationSettings 的帮助下
我正在开发一个 Windows Phone 8 应用程序,它依赖于 IsolatedStorageSettings 来保存应用程序设置。我没有真正的设备,所以我使用模拟器来测试应用程序。应用程序设置在
我正在尝试获取使用 isolatedStoragesettings 保存的 bool 值,如下所示: IsolatedStorageSettings.ApplicationSettings.TryGe
我正在使用 IsolatedStorageSettings在我的 Windows Phone 7 项目中将类作为键值存储来记住我的应用程序中的用户首选项和登录凭据。 问题是,当我调用 Remove(s
我想存储一些基本信息以防止每次登录,因为我使用的是 IsolatedStorageSettings,但数据仅在应用程序打开之前存储,即使应用程序关闭我如何保留数据并在应用程序再次启动时返回。我的代码如
当应用程序通过 AppStore 更新时,Windows Phone 8 应用程序存储的设置是否被保存? 最佳答案 IsolatedStorageSettings 提供了一种方便的方法,可以将用户特定
在 Debug模式和 Release模式下,模拟器和真实设备都会发生这种情况。 在应用程序中,我成功地存储了几个应用程序设置——从简单的值类型到更复杂的对象和对象列表。 使用“WP POWER TOO
来自IsolatedStorageSettings.Save Method的备注部分页: Data written to the IsolatedStorageSettings object is s
添加时出错 IsolatedStorageSettings appSettings = IsolatedStorageSettings.ApplicationSettings; 在我的 MainPag
我有 Windows Phone 8.0 应用程序,它使用 IsolatedStorageSettings.ApplicationSettings 来存储设置等。现在我计划将此应用程序“更新”到 Wi
我是一名优秀的程序员,十分优秀!