苦苦于了解MVVM架构

ABR*_*ABR 7 c# wpf mvvm mvvm-light

我正在尝试学习MVVM和WPF,我正在使用MVVM Light Toolkit.这是我不完全理解的,也许是由于我的UI架构不正确.

我想要完成的事实上非常简单.顺便说一下,这是一个实用的应用程序.我想要一个充当"控制器"的窗口,以便说它有一组按钮.每个按钮都应该改变框架的内容.示例:一个按钮加载"屏幕"(或"视图",如果您愿意),允许用户配置作为自定义对象的"代理".另一个按钮加载来自代理商的第一个"屏幕"中的用户列表.此"用户"视图也需要加载到同一帧中.事实上,截至目前,具有所有按钮的窗口实际上只负责加载框架中的"屏幕".应用程序的内容将位于所有单独的"屏幕"中

我不理解的是1)如何让每个屏幕/视图彼此了解,因为一个依赖于另一个.似乎在MVVM中,ViewModel不应该知道任何事情.但就我而言,我需要传递信息(例如我的代理商).

如果我能得到一些我需要研究的提示,那就太好了.

谢谢!

Ken*_*ick 13

一些想法可能会连接一些点:

  • 您最有可能每个视图("屏幕")有一个视图模型.
  • 每个视图模型都将包含其相应视图的所有逻辑
  • Viewmodels可以并且将会了解模型(代理商,用户)
  • Viewmodels可以通过MVVM Light中的Messenger进行相互通信
  • 将MVVM Light的Messenger视为"应用程序范围的事件系统".当您从一个视图模型发送消息时,任何其他视图模型都可以监听该消息/事件并根据需要对其作出反应.

这些帮助有用?保持你的想法,我会继续评论,我相信社区也会这样:)