Silverlight + Model-View-ViewModel (MVVM)

简介:
     早在2005年,John Gossman写了一篇关于Model-View-ViewModel模式的博文,这种模式被他所在的微软的项目组用来创建. Blend(即'Sparkle')。它跟Martin Fowler的Presentation Model非常相似,唯一不同的是,它填平了presentation model和使用了WPF的丰富的数据绑定的view之间的沟壑。在Dan Crevier发表了神作DataModel-View-ViewModel series博文系列之后,(D)MVVM模式开始变得流行起来。
     (Data)Model-View-ViewModel模式跟经典的Model-View-Presenter模式很相似,除了你需要一个为View量身定制的model,这个model就是ViewModel。ViewModel包含所有由UI特定的接口和属性,它们是轻松构建UI的必要元素。View绑定到ViewModel,然后执行一些命令在向它请求一个动作。而反过来,ViewModel跟Model通讯,告诉它更新来响应UI。
      这使得为应用构建UI非常的容易。往一个应用程序上贴一个界面越容易,外观设计师就越容易使用Blend来创建一个漂亮的界面。同时,当UI和功能越来越松耦合的时候,功能的可测试性就越来越强。
John Gossman's Introduction to Model/View/ViewModel pattern for building WPF apps John Gossman 2005年写的一篇关于Model-View-ViewModel模式的博文
StackOverflow 讨论 Should I use the Model-View-ViewModel (MVVM) pattern in Silverlight projects? Jonas Follesø's YouCard example Nikhil Kothari's ViewModel Pattern in Silverlight and a funky extension to MVVM using the DLR Martin Fowler's Presentation Model
WPF 应用程序使用程序的模型视图 ViewModel 设计模式
为什么 WPF 开发人员喜欢 MVVM
一旦开发人员成为熟悉 WPF 和 MVVM,很难区分这两者。 MVVM 是 WPF 开发人员的语言 franca,因为它是适合在 WPF 平台 WPF 为了方便地构建应用程序使用 MVVM 模式 (在其他)。 实际上,Microsoft 使用 MVVM 内部开发 WPF 应用程序,Microsoft . Blend,如,核心 WPF 平台时正在建设中。 WPF,如外观不控制模型和数据模板的许多方面使用显示的状态和行为的 MVVM 提升强的分离。
Dan Crevier's DataModel-View-ViewModel pattern series 8篇介绍WPF的 sample DataModel 和 ViewModel
David Wynn's Silverlight and the View-ViewModel Pattern 使用 NInjectSilverlight Extensions (Command) 和Unit Testing的例子
Josh Smith讨论MVVM eliminates 99% of the need for ValueConverters
The .ly place I can see a use for value converters in an MVVM architecture is cross-element bindings. If I'm binding the Visibility of a panel to the IsChecked of a CheckBox, then I will need to use the BooleanToVisibilityConverter.
Mark Heath's Model View View-Model (MVVM) in Silverlight 在Silverlight 2.0演示MVVM 的例子





本文转自 张善友 51CTO博客,原文链接:http://blog.51cto.com/shanyou/133863,如需转载请自行联系原作者
目录
相关文章
|
4月前
|
设计模式 前端开发
MVVM视图模型
这篇文章介绍了MVVM(Model-View-ViewModel)设计模式的基本概念和应用,以及如何利用它来构建高效、可维护的应用程序。
MVVM视图模型
|
7月前
|
监控 数据可视化 Linux
Qt Model&View&Delegate(模型-视图-代理) 介绍和使用
Qt Model&View&Delegate(模型-视图-代理) 介绍和使用
Qt Model&View&Delegate(模型-视图-代理) 介绍和使用
|
5月前
LiveData和ViewModel源码学习
LiveData和ViewModel源码学习
|
7月前
|
前端开发
MVVM LiveData+DataBinding+Lifecycle+ViewModel架构
MVVM LiveData+DataBinding+Lifecycle+ViewModel架构
70 1
|
设计模式 JavaScript 前端开发
kendo-ui的MVVM模式
kendo-ui的MVVM模式
|
C#
WPF ViewModel与多个View绑定后如何解决的问题
原文:WPF ViewModel与多个View绑定后如何解决的问题 当重复创建View并绑定同一个ViewModel后,ViewModel中的字段更新,在新的View中的没有反应或者在View中找不到相应的视觉树(如ListBox的ListBoxItem) 初始的解决方案:View关闭后,注销属性Unregister Dependency。
1404 0
|
容器 数据安全/隐私保护 JavaScript
View组件
一、使用方法 view组件是最常用的,也是最简单的视图容器。它是一个块级容器组件,它没有特殊的功能,主要用于布局展示,是布局中最基本的UI组件。几乎所有复杂的布局都可以通过嵌套view来实现。 view除了公共属性之外,还有以下几个私有属性 属性名 类型 默认值 说明hover-.
3045 0
|
前端开发 C# 容器
从PRISM开始学WPF(五)MVVM(一)ViewModel?
原文:从PRISM开始学WPF(五)MVVM(一)ViewModel? 从PRISM开始学WPF(一)WPF? 从PRISM开始学WPF(二)Prism? 从PRISM开始学WPF(三)Prism-Region? 从PRISM开始学WPF(四)Prism-Module? 从PRISM开始学WPF(五)MVVM(一)ViewModel? 从PRISM开始学WPF(六)MVVM(二)Command? 从PRISM开始学WPF(七)MVVM(三)事件聚合器EventAggregator? 0x5 MVVM 蛤蛤,终于到MVVM了。
1248 0
|
前端开发 C#
WPF MVVM 架构 Step By Step(6)(把actions从view model解耦)
原文:WPF MVVM 架构 Step By Step(6)(把actions从view model解耦)   到现在为止,我们创建了一个简单的MVVM的例子,包含了实现了的属性和命令。我们现在有这样一个包含了例如textbox类似的输入元素的视图,textbox用绑定来和view model联系,像点击button这样的行为用命令来联系。
1558 0
|
前端开发
第5部分.把数据绑定到MVVM——Model-View-ViewModel体系结构的介绍
Model-View-ViewModel(MVVM)体系结构模式是在XAML的基础上发明的。 该模式强制三个软件层之间的分离 - XAML用户界面,称为视图; 基础数据,称为模型; 以及View和Model之间的中介,称为ViewModel。
1898 0