2011-01-06 68 views
6

在wpf应用程序中,viewmodel的责任是什么?他可以管理所有事情,还是只代表视图并将消息/事件发送到业务层并从中获取信息?视图模型应该包含逻辑吗?

+1

是的 - http://stackoverflow.com/questions/1405739/mvvm-tutorial-from-start-to-finish – Josh 2011-01-06 05:28:14

回答

8

简短的回答,是的。

较长的答案...

模型 - 视图 - 视图模型(MVVM)模式的主要目标是:你的观点的逻辑

  1. 许可单元测试。这些是应用于ViewModel层的单元测试,在没有与之关联的View的情况下执行该层。
  2. 通过最大限度地减少与您的XAML文件关联的代码隐藏量来促进开发人员设计工作流程。

MVVM模式还提供了视图逻辑和业务逻辑之间的关注点分离,就像MVC及其UI模式一样。但是,以上两点是真正定义MVVM模式的。

现在,考虑您在哪里找到您的业务逻辑。如果你把它放在你的ViewModel中,上面#1 &#2仍然有效吗?是。如果将它放在单独的图层中,#1和#2仍然有效吗?是。

因此,在这两种情况下,您仍然实现MVVM的两个主要目标。你采用哪条路线确实取决于你的应用程序的复杂程度以及处理它的开发者的数量。随着这两个因素的增加,您将受益于3层......或更多!

相关问题