在WPF中跨ViewModel共享模型的最佳/推荐方法是什么?

时间:2015-11-11 13:57:14

标签: wpf c#-4.0 design-patterns mvvm mvvm-light

我有一个带有多个ViewModel的WPF应用程序。其中一些ViewModel还有其他ViewModel的Observable集合。我想使用单个对象(或对象列表)作为模型,它需要由我的应用程序中的所有ViewModel访问。最简单的方法可能是将引用传递给每个视图模型,但我认为这不是最好的方法。或者,我可以将模型声明为静态实例。这些解决方案看起来有点奇怪而且不优雅。我想也许我可以使用MVVM Light并在SimpleIoc中注册我的模型:

SimpleIoc.Default.Register<myModel>();

然后每个模型都可以通过调用:

来访问此实例
var model = ServiceLocator.Current.GetInstance<myModel>();

这是一个好主意还是有更好的方法可以从每个ViewModel访问模型? ps:我不想使用依赖注入。这对我的小型应用来说太过分了。

1 个答案:

答案 0 :(得分:1)

如何为模型创建单独的类库项目。这样,您只需引用类库项目即可轻松共享模型,该类项目只包含任何需要模型的项目中的模型,例如:包含ViewModels的项目。关键是,模型和视图模型都可以存在于单独的类库项目中。