Windows 8 XAML - 存储对象本地资源

Windows 8 XAML - Storing Objects local resource

我对 Windows Store Apps in XAML/C# 的开发还比较陌生,我目前正在处理我编写的应用程序的一个非常随机和间歇性的问题。

首先简要概述一下我的应用程序的工作原理 - 用户每天登录一次,从 Web 服务下载数据并将数据存储在 xml 文件中。每次应用 opens/resumes 从 xml 加载数据,反序列化并存储在 Application.Resouces 资源字典的内存中。

我存储的对象是我自己的 类,其中包含其他 类 的 Observable 集合。我已经在 App.xaml

中声明了这些
<localdata:MyClass x:Key="MyClassResource">

当页面需要此数据时,我使用

引用它
MyClass myClass = (MyClass)App.Current.Resources["MyClassResource"];

并将其绑定到控件。用户更新数据,这些更改也会定期保存到文件中。

我现在开始怀疑这是否是存储数据的正确方法。

用户经常报告存储数据的问题 - 我现在没有足够的细节来全面讨论具体问题,但我想就将我自己的对象存储在应用程序资源中是否合适提出建议词典.

你的方法没有问题。它实际上是一种非常常见的创建和访问视图模型的方式。有一个很好的 blog post by Paul Stovell 描述了创建和访问视图模型的不同方法。

  1. 从视图中的代码隐藏创建视图模型
  2. 将视图模型作为依赖项注入视图
  3. 将视图模型分配给视图的 DataContext 属性
  4. 通过 XAML 将视图模型设置为 DataContext 属性
  5. 在 XAML
  6. 中将视图模型定义为资源
  7. 在 XAML
  8. 中使用视图模型定位器
  9. 数据模板 属性 XAML
  10. DataTemplate 并在 XAML
  11. 中查看 class

参考文章通过示例描述了所有 8 种方法。您的方法是第 5 种方法。