1

我对 MVVM Light 有点陌生,并且乐于快速上手。与通过定位器创建 ViewModel 相比,我有一个关于创建应用程序对象的公共属性的问题。具体来说...

我看到的示例将定位器创建为 app.xaml 文件中的应用程序资源。我的问题是它是在创建应用程序公共属性之前创建的。我有一个包含集合的应用程序对象的静态属性。因为这个属性是在创建定位器服务之后创建的,所以我不能在定位器创建的任何视图模型的构造函数中引用它。

所有这些都让我想知道我是否做错了!在我的应用程序中,我有一个几乎想在任何地方使用的集合。我的计划是每个 ViewModel(我只有几个)都会在它们的构造函数中复制这个对象。仔细想想,这可能已经坏了——我可能应该通过我的 ViewModel 传回对应用程序属性的引用,而不是复制一份,对吧?

无论如何,我想我有两个问题:

  1. 鉴于定位器(及其 ViewModels)是较早创建的,我如何处理需要访问应用程序对象属性的 ViewModels。
  2. 当我希望所有 ViewModel 都公开一个应用范围的属性时,这里的一般模式是什么?

提前致谢。

标记

4

0 回答 0