c#mvvm如何将模型传递给viewmodel

时间:2016-05-25 13:11:25

标签: c# mvvm

我过去曾经阅读过很多关于MVVM的内容,但我并没有完全实现。 我查看了MVVM Light框架并了解了ServiceLocater的模式以绑定View和Viewmodel。但我没有找到任何关于模型和视图模型之间的连接的帮助。

到目前为止,我知道Viewmodel应该有一个私有"模型"实例和View要读取的一些公共属性。 Model应该实现INotifyPropertyChanged事件以通知Viewmodel,Viewmodel可以对数据执行某些操作和/或更改其公共属性并通知视图。

我希望到目前为止我做对了。但是:模型在哪里创建? Viewmodel如何获得模型? Viewmodel是否创建了它? 我的应用程序通过蓝牙连续获取数据并在后台处理它们。在不同的流程阶段,它会改变不同的模型。我的第一个方法是一个包含所有模型的Singleton。 Viewmodel从Singleton获取Model,Background-process也可以访问Model。但我认为"模式"真是太糟糕了......但我找不到任何解决方案来做到这一点"很好"。我不知道如何正确地在viewmodel和后台进程(businessLogic)之间共享模型。

我很高兴有任何帮助:)

1 个答案:

答案 0 :(得分:0)

据我所知并在我们的WPF项目中使用 - 经典的MVVM委托在ViewModel上创建模型。 ViewModel应该是模型感知的。有时,ViewModel可以依赖ServiceLocator或DependencyInjection模式来查找和创建Model类(即通过接口)。