当前位置:  开发笔记 > 编程语言 > 正文

在MVVM中绑定DataContext的策略是什么?

如何解决《在MVVM中绑定DataContext的策略是什么?》经验,为你挑选了1个好方法。

这两个1小时的视频逐步展示了如何使用MVVM模式在Silverlight和WPF中构建简单的测验应用程序:

在Silverlight中实现Model-View-ViewModel

在WPF中实现Model-View-ViewModel

令我惊讶的是,它们在结构上多么不同,例如,它们如何使用DataBinding:

在Silverlight方法中,我们View的DataContext设置为ViewModel中的ObservableCollection:



QuestionViewModel qdata = new QuestionViewModel();
qdata.FetchQuestions();
QuestionDataView.DataContext = qdata.Questions;

在WPF方法中,我们Window的DataContext设置为ViewModel本身.



base.DataContext = new QuizViewModel(Quiz.Create());

看起来我看到的每个MVVM示例都在一个稍微新的变体中进行DataContext绑定,并且我试图确定" 如何在MVVM模式中完成DataContext绑定 ".

当你决定将DataContext绑定到某个东西时,你的头脑是什么:为什么将Window/View/ListBox /等的DataContext绑定到ObservableCollection/ModelView /等?这里有哪些优点,缺点和策略?

任何输入赞赏.



1> Kent Boogaar..:

他们是否提到为什么不同的方法用于Silverlight?它可能只是平台的限制.

建议的方法是绝对使用视图模型本身作为视图DataContext.实际上,您应该创建视图模型并让WPF为您解析视图,而不是显式创建视图.为此,请注册DataTemplate:


    

然后你只是坚持您的视图模型实例到一个ContentControl,ItemsControl或任何和WPF会与相应的呈现它DataTemplate.这DataTemplate将有视图模型作为其DataContext凭借WPF的模板系统.

推荐阅读
手机用户2502851955
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有