这两个 1 小时的视频分步展示了如何使用 MVVM 模式在 Silverlight 和 WPF 中构建简单的测验应用程序:
令我惊讶的是它们在结构上的不同之处,例如,它们如何使用 DataBinding:
在 Silverlight 方法中,我们将View的 DataContext 设置为ViewModel中的ObservableCollection:
<views:QuestionView x:Name="QuestionDataView" />
QuestionViewModel qdata = new QuestionViewModel();
qdata.FetchQuestions();
QuestionDataView.DataContext = qdata.Questions;
在 WPF 方法中,我们将Window的 DataContext 设置为ViewModel本身。
<view:QuizView Margin="4" />
base.DataContext = new QuizViewModel(Quiz.Create());
似乎我看到的每个 MVVM 示例都以稍微新的变体进行 DataContext 绑定,我试图确定一些坚实的基础,即“如何在 MVVM 模式中完成 DataContext 绑定”。
当您决定将 DataContext 绑定到某个东西时,您会想到什么:为什么要将Window / View / ListBox / 等的 DataContext 绑定到ObservableCollection / ModelView / 等?这里有什么优点、缺点和策略?
任何输入表示赞赏。