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

时间:2015-02-19 15:59:07

标签: winrt-xaml windows-8.1

对于XAML / C#中的Windows应用商店应用程序的开发,我还是比较陌生的,而且我目前正在处理我编写的应用程序的随机和间歇性问题。

首先快速概述我的应用程序如何工作 - 用户每天登录一次,从Web服务下载数据并将数据存储在xml文件中。每次应用程序打开/恢复时,数据都从xml加载,反序列化并存储在Application.Resouces资源字典的内存中。

我正在存储的对象是我自己的类,其中包含其他类的Observable Collections。我在App.xaml

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

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

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

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

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

用户经常会报告存储数据的问题 - 我现在没有足够的详细信息来详细讨论具体问题,但我想建议将自己的对象存储在应用程序资源中是否合适字典。

1 个答案:

答案 0 :(得分:0)

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

  1. 在视图中从代码隐藏创建视图模型
  2. 将视图模型作为依赖项注入视图
  3. 将viewmodel分配给查看的DataContext属性
  4. 通过XAML将viewmodel设置为DataContext属性
  5. 将视图模型定义为XAML中的资源
  6. 在XAML中使用视图模型定位器
  7. XAML中的DataTemplate属性
  8. XAML中的DataTemplate和视图类
  9. 参考文章通过示例描述了所有8种方法。你的方法是5号。