【问题标题】:c# mvvm how to pass model to viewmodelc# mvvm如何将模型传递给viewmodel
【发布时间】:2016-09-23 02:59:14
【问题描述】:

我过去读过很多关于 MVVM 的文章,但我还没有完全明白。 我查看了 MVVM Light 框架并理解了 ServiceLocater 绑定 View 和 Viewmodel 的模式。但是我没有发现模型和视图模型之间的连接有什么帮助。

到目前为止,我知道 Viewmodel 应该有一个私有的“模型”实例和一些要被 View 读取的公共属性。 Model 应该实现 INotifyPropertyChanged 事件来通知 Viewmodel,Viewmodel 可以处理数据和/或更改其公共属性并通知视图。

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

我很高兴有任何帮助:)

【问题讨论】:

  • 好问题,但可能更适合 Programmers.StackExchange(该站点处理架构问题,S/O 用于特定代码问题)
  • @jdl134679 在引用其他网站时,指出cross-posting is frowned upon 通常会有所帮助

标签: c# mvvm


【解决方案1】:

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

【讨论】:

  • 谢谢,我想我会使用 unity 作为依赖注入框架来将模型提供给 viewmodel
猜你喜欢
  • 2020-11-17
  • 2020-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多