Windows Phone Mango编程实践
Windows Phone Mango Programming Practice
作品目标:Windows Phone开发实用手册
Model-View-ViewModel (MVVM)设计模式清晰地分离用户界面(UI)的业务逻辑和表示层。MVVM使得用户界面设计人员专注于界面设计,开发人员专注于代码的业务逻辑,并使得开发人员和用户界面设计人员在软件制作过程能够更容易地合作。
在MVVM设计模式,应用程序的用户界面和底层表示,以及业务逻辑被分成三个不同的类别:视图(View)、视图模型(ViewMode)和模型(Model)。MVVM设计模式犹如孙子兵法中的地形:"地形有通者,有挂者,有支者,有隘者,有险者,有远者。"夫地形者,兵之助也;MVVM则有助于应用程序的测试,维护和升级。熟练掌握MVVM的类及其相互作用,乃"将之至任,不可不察也"。故曰:"知此而用战者必胜,不知此而用战者必败"。
下图展示了MVVM类及其相互作用。
图14-1 MVVM类及其相互作用
在www.CodePlex.com上有许多不错的第三方MVVM框架可供我们借鉴,其中比较推崇的有MVVM Light Toolkit、Ultra Light MVVM for Windows Phone和Simple MVVM Toolkit都适合Windows Phone的开发。
MVVM Light Toolkit是帮助人们在Silverlight和WPF中使用MVVM设计模式的一套组件。它是一个轻量级的、务实的框架,只包含所需的必要组成部分。
下载地址: http://mvvmlight.codeplex.com/ 。
ViewModel文件夹添加了两个附加的类:ViewModelLocator.cs和MainViewModel.cs。ViewModelLocator声明在 App.xaml中可用作源的 DataContext 绑定;MainViewModel 也已添加到项目中 ViewModelLocator 作为公开属性。
注意
如果在项目中不需要使用MainViewModel,可以删除此类。
为了使用MainViewModel作为MainPage.xaml的DataContext,需要在MainPage.xaml的开始标记中添加以下代码:
DataContext="{Binding Main, Source={StaticResource Locator}}"
DataContext 也可以直观地在Expression Blend中使用以下步骤中绑定。
图14-2 Blend的数据绑定
More information about the MVVM Light Toolkit can be found on http://www.galasoft.ch/mvvm/getstarted更多关于MVVM Light Toolkit的帮助请登录http://www.galasoft.ch/mvvm/getstarted .。
Ultra Light MVVM是轻量级的MVVM Silverlight应用程序,支持Windows Phone的逻辑删除(tombstoning)。Ultra Light MVVM支持Windows Phone的特性:
下载地址: http://ultralightmvvm.codeplex.com/ 。
Simple MVVM Toolkit使开发应用MVVM设计模式Widnows Phone的应用程序变得更容易,为基于 MVVM设计模式的应用程序提供一个简单的框架和工具集。Simple MVVM Toolkit的特点是简单,但它包含执行 MVVM 设计模式的应用程序所需的一切。
下载地址: http://simplemvvmtoolkit.codeplex.com/ 。
来自Tony Sneed博客的Simple MVVM Toolkit和MVVM Light Toolkit的比较结果。
图14-3 Simple MVVM Toolkit和MVVM Light Toolkit的比较
Simple MVVM Toolkit安装后的MVVM应用程序如图 Simple MVVM Toolkit。
图14-4 Simple MVVM Toolkit