可能重复:
Why use MVVM?
我正在尝试在我的WPF项目中实现MVVM,但是自从我开始以来,我发现很难通过所期望的任务完成。
我正在使用Caliburn Micro for MVVM,我发现很难从ViewModel调用其他其他ViewModel属性,也无法处理像TextBox的GotFocus这样的控件事件。
MVVM真的比CodeBehind更好,我没有使用MVVM进行测试。
请帮忙。
答案 0 :(得分:2)
MVVM简化了自动化测试,它可以帮助您通过关注点分离来保持代码清洁。
如果你不进行自动化测试,主要还是第二个原因(还有其他一些小优势,但这是IMO的主要优势)。如果您在使用纯MVVM时遇到困难,可能需要考虑使用混合方法:在视图模型中尽可能多地保留,但如果它使代码更具可读性,则不要害怕使用代码。
不要忘记:MVVM是一个工具,而不是目标!它应该让你的生活更轻松,而不是更难。如果你为了避免使用单行GotFocus处理程序而必须在两层间接写入50行样板代码,那么你可能会过度使用它。