Edw*_*uay 6 silverlight wpf conceptual mvvm
这两个1小时的视频逐步展示了如何使用MVVM模式在Silverlight和WPF中构建简单的测验应用程序:
在Silverlight中实现Model-View-ViewModel
令我惊讶的是,它们在结构上有多么不同,例如,它们如何使用DataBinding:
在Silverlight方法中,我们将View的DataContext设置为ViewModel中的ObservableCollection:
<views:QuestionView x:Name="QuestionDataView" />
QuestionViewModel qdata = new QuestionViewModel();
qdata.FetchQuestions();
QuestionDataView.DataContext = qdata.Questions;
Run Code Online (Sandbox Code Playgroud)
在WPF方法中,我们将Window的DataContext设置为ViewModel本身.
<view:QuizView Margin="4" />
base.DataContext = new QuizViewModel(Quiz.Create());
Run Code Online (Sandbox Code Playgroud)
看起来我看到的每个MVVM示例都在一个稍微新的变体中进行DataContext绑定,并且我试图确定" 如何在MVVM模式中完成DataContext绑定 ".
当你决定将DataContext绑定到某个东西时,你的头脑是什么:为什么将Window/View/ListBox /等的DataContext绑定到ObservableCollection/ModelView /等?这里有哪些优点,缺点和策略?
任何输入赞赏.
Ken*_*art 10
他们是否提到为什么不同的方法用于Silverlight?它可能只是平台的限制.
建议的方法是绝对使用视图模型本身作为视图DataContext.实际上,您应该创建视图模型并让WPF为您解析视图,而不是显式创建视图.为此,请注册DataTemplate:
<DataTemplate DataType="{x:Type local:MyViewModel}">
<local:MyView/>
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)
然后你只是坚持您的视图模型实例到一个ContentControl,ItemsControl或任何和WPF会与相应的呈现它DataTemplate.这DataTemplate将有视图模型作为其DataContext凭借WPF的模板系统.
| 归档时间: |
|
| 查看次数: |
5274 次 |
| 最近记录: |