【发布时间】:2010-11-24 18:05:45
【问题描述】:
我一直在从 MSDN 等各种来源阅读有关 MVVM 模式的信息:
http://msdn.microsoft.com/en-us/magazine/dd419663.aspx
在那篇文章中说:与 MVP 中的 Presenter 不同,ViewModel 不需要对视图的引用。
如果视图 (XAML) 假定它的 DataContext 是 ViewModel,那么代码中的以下行是:
view.DataContext = viewModel;
ViewModel 对视图一无所知,因此无法设置数据上下文。如果我给 ViewModel 提供参考,我会打破 MVVM 模式吗?我的另一个选择是拥有某种 Builder 或额外的 Presenter,它们唯一的工作就是连接整个事物(等待 View 的加载事件,设置 DataContext)。
我知道不同的视图可以共享相同的 DataContext(例如,仅为主窗口设置 DataContext,其他人会看到它),但在许多情况下,这根本不可能,甚至不可行。
【问题讨论】:
标签: silverlight mvvm