当前位置:  开发笔记 > 前端 > 正文

我应该在Silverlight项目中使用Model-View-ViewModel(MVVM)模式吗?

如何解决《我应该在Silverlight项目中使用Model-View-ViewModel(MVVM)模式吗?》经验,为你挑选了1个好方法。

Silverlight控件的一个挑战是,当属性绑定到代码时,它们在Blend中不再可编辑.例如,如果您有一个从数据源填充的ListView,则在Blend中编辑控件时没有可见的元素.

我听说由WPF开发社区发起的MVVM模式也可以帮助保持Silverlight控件"可混合".我仍然围绕它,但这里有一些解释:

http://www.nikhilk.net/Silverlight-ViewModel-Pattern.aspx

http://mark-dot-net.blogspot.com/2008/11/model-view-view-model-mvvm-in.html

http://www.ryankeeter.com/silverlight/silverlight-mvvm-pt-1-hello-world-style/

http://jonas.follesoe.no/YouCardRevisitedImplementingTheViewModelPattern.aspx

一个潜在的缺点是该模式需要额外的类,但不一定是更多的代码(如上面的第二个链接所示).思考?



1> Jonas Folles..:

我绝对认为您应该将MVVM模式用于Silverlight应用程序 - 该模式的一个好处是,您可以通过一些简单的技术实际上使您的应用程序真正可混合.我经常将"可混合性"称为"可设计性设计" - 您使用某些技术来确保您的应用程序在Blend中看起来很棒.

其中一种技术 - 如Torbjørn所指出的 - 是使用依赖注入框架并提供外部服务的不同实现,具体取决于在Blend或浏览器中执行代码的程度.因此,当代码在Blend中执行时,我将容器配置为使用虚拟数据提供程序,这样您就可以获得列表框,数据网格等的设计时支持.

挑战通常是如何以声明方式设置DataContext - 因此我经常最终使用服务定位器类aa"前端"到IoC容器.这样我就可以将数据上下文绑定到服务定位器上的属性.

另一种技术是创建某种ObjectDataSource控件(非可视),它具有两个属性:Design Time DataContext和RunTime Data Context.控件执行检测正在执行的位置的工作,然后将Parent DataContext设置为正确的对象.

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