【发布时间】:2013-10-12 00:36:52
【问题描述】:
我在酒吧喝了几杯啤酒,这个女孩争辩说让 mvvm 与现实世界的应用程序一起工作很痛苦,她说为了解决 mvvm 中的问题,你添加更多代码然后你得到另一个问题和你添加更多的代码,它永远不会结束,我同意,当我读到 mvvm 听起来不错,我不想使用棱镜或 MVVM 灯,我只需要一种在我的视图之间切换的方法。我的应用程序看起来像这样,所以请在我酒精中毒之前启发我
【问题讨论】:
-
现实世界的应用程序是否等同于一个非常混乱的 UI?
-
@flup 我制作了这样的用户界面,因为我认为这是学习它的最佳方式
-
我不知道你在说什么。 MVVM 比我见过的任何东西都更干净,需要更少的代码。只需将一些
<ContentPresenter/>s 放在那里并将它们绑定到一些相关的 ViewModel。你有什么问题? -
是的。如果您想要松散耦合的通信,则需要一个 EventAggregator(不是专门在 MVVM 中,而是在您能想到的任何其他松散耦合架构中)。你可以实现这种类型的 UI,只需使用一个带有一些属性的
MainViewModel来确定在较小的视图中显示什么。有数千种方法可以实现这一点,您可以选择最喜欢的任何一种。 MVVM 不是一套硬核规则,它只是一套指导方针,其中最重要的是“不要把业务逻辑放在 Code-Behind 中” -
它只是一个具有事件的类,订阅者处理该事件并对其做出反应。它还有一个 void 方法,您可以调用它来引发事件