ViewModel应该在MVVM模式中引用哪些类型的对象?

时间:2010-05-14 19:33:07

标签: wpf design-patterns mvvm

我见过很多MVVM的例子。我可以看到View应该引用ViewModel。我最近看到一个ViewModel引用View的例子,这对我来说似乎不对,因为它会导致更紧密的耦合。鉴于ViewModel经常被描述为View和Model之间的中介,ViewModel对于域对象的外观是否更多?我希望我在这里正确使用“门面”一词。

2 个答案:

答案 0 :(得分:4)

你的直觉是正确的; ViewModel不应该引用View。

请注意,这是“应该”。纯粹主义者说,ViewModel甚至不应该引用像the Visibility enumeration这样的WPF内容,但我不同意。除此之外,ViewModel应该可以帮助您分离问题并提高代码的可读性。如果你必须跳过箍以避免引用属于View的东西,那就表明你可能会过度使用它。

答案 1 :(得分:1)

从技术上讲,视图模型应该引用模型,但不应该引用视图。视图应绑定到视图模型,视图模型应使用模型中的数据公开方便的绑定属性。

显然,视图模型的复杂性取决于应用程序和模型中的数据。但是将它视为“外观”并不是非常有害(尽管在开发人员术语中并不完全正确)。