我一直在各个来源,如MSDN上阅读有关MVVM模式的内容:
http://msdn.microsoft.com/en-us/magazine/dd419663.aspx
在那篇文章中,它说:与MVP中的Presenter不同,ViewModel不需要引用视图。如果视图(XAML)假定它的DataContext是ViewModel,那么在代码中以下一行位于何处:
view.DataContext = viewModel;
ViewModel并不知道视图,因此无法设置数据上下文。如果我将引用传递给ViewModel,是否会破坏MVVM模式?我的另一个选择是拥有某种构建器或额外的Presenter,其唯一的工作是连接整个过程(等待View的加载事件,设置DataContext)。
我知道不同的视图可以共享相同的DataContext(例如仅为主窗口设置DataContext,其他人将看到它),但在许多情况下,这根本不可能甚至不可行。