1

可能重复:
为什么要使用 MVVM?

我正在尝试在我的 WPF 项目中实现 MVVM,但是自从我开始后,我发现很难完成所需的任务。

我将 Caliburn Micro 用于 MVVM,我发现很难从 ViewModel 调用其他其他 ViewModel 属性,并且也无法处理控件的事件,例如 textBox 的 GotFocus。

MVVM 真的比 CodeBehind 好,我没有使用 MVVM 进行测试。

请帮忙。

4

1 回答 1

2

MVVM 简化了自动化测试,并通过关注点分离帮助您保持代码整洁。

如果您不进行自动化测试,则主要是第二个原因(还有其他次要优势,但这是 IMO 的主要优势)。如果您在使用纯 MVVM 时遇到困难,您可能需要考虑使用混合方法:尽可能多地保留在视图模型中,但如果它使您的代码更具可读性,请不要害怕使用后面的代码。

不要忘记:MVVM 是一个工具,而不是一个目标!它应该让你的生活更轻松,而不是更难。如果为了避免单行 GotFocus 处理程序而必须在两层间接层上编写 50 行样板代码,那么您可能做得过火了。

于 2012-09-20T07:11:57.223 回答