MVVM开发模式MVVM Light Toolkit
2012-05-02 15:09
253 查看
MVVM模式就不细说了
个人理解
M是Model,是业务实体model,包含了数据的存取访问
V是View,是页面,是展示,是数据的显示,应该是单纯的xaml代码
VM是ViewModel,他应该是View上数据,方法,事件的抽象集合,是沟通Model和View的桥梁
一。 MVVM Light Toolkit安装
目前GalaSoft的 MVVM Light Toolkit这个插件在mvvm开发方面应用比较广泛
http://www.galasoft.ch/mvvm/
安装地址
http://www.galasoft.ch/mvvm/installing/
目前正式版本是V3.0
二。新建mvvm项目
下载安装以后,vs2010,就自动安装了mvvm的项目模板,在window phone项目下面就可以找到适用于window phone开发的mvv项目模板
新建项目以后,mvvm基本架构就全部已经在项目中包含了
有Model文件夹,viewmodel文件夹,xaml就是View
有几个文件和代码段要注意。
ViewModelLocator这是一个核心类,这个类返回实例化的ViewModel到View。
Loator的定义在App.xaml中,在app.xaml中声明可以全局使用
<vm:ViewModelLocator x:Key="Locator"
d:IsDataSource="True" />
</Application.Resources>
在MainPage.xaml文件中有几个显示文字title的地方
其中Bindind中 ApplicationTitle,PageName都是ViewModel 文件夹中MainViewModel中的属性
MainViewModel 和MainPage.xaml是通过这个代码段绑定到一起的。
在MainPage.xaml的根元素上声明
DataContext="{Binding Main, Source={StaticResource Locator}}
三。新建页面
参照MainPage页面,新建页面的时候也是新建一个ViewModel,一个View.xaml,并且在ViewModelLocator.cs中多注册一个返回View的属性方法绑定到xaml中就可以
新建viewmodel和view的时候也会看到mvvm安装后产生的新模板,可以直接使用
在ViewModelLocator.cs中注册这个viewmodel
可以参考模仿原来的Main的属性
或者直接使用代码段Code Snippets
安装过mvvm后在安装的文件夹位置可以找到代码段,在vs的工具中--代码段管理器,导入这些
然后在 拼写 mvvmlocatorproperty 的时候就可以看到自动生成的属性,然后把属性名字改成正确的viewmodel名字就可以
个人理解
M是Model,是业务实体model,包含了数据的存取访问
V是View,是页面,是展示,是数据的显示,应该是单纯的xaml代码
VM是ViewModel,他应该是View上数据,方法,事件的抽象集合,是沟通Model和View的桥梁
一。 MVVM Light Toolkit安装
目前GalaSoft的 MVVM Light Toolkit这个插件在mvvm开发方面应用比较广泛
http://www.galasoft.ch/mvvm/
安装地址
http://www.galasoft.ch/mvvm/installing/
目前正式版本是V3.0
二。新建mvvm项目
下载安装以后,vs2010,就自动安装了mvvm的项目模板,在window phone项目下面就可以找到适用于window phone开发的mvv项目模板
新建项目以后,mvvm基本架构就全部已经在项目中包含了
有Model文件夹,viewmodel文件夹,xaml就是View
有几个文件和代码段要注意。
ViewModelLocator这是一个核心类,这个类返回实例化的ViewModel到View。
//返回MainViewMode实例 public MainViewModel Main { get { return MainStatic; } }
Loator的定义在App.xaml中,在app.xaml中声明可以全局使用
<vm:ViewModelLocator x:Key="Locator"
d:IsDataSource="True" />
</Application.Resources>
在MainPage.xaml文件中有几个显示文字title的地方
<StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="24,24,0,12"> <TextBlock x:Name="ApplicationTitle" Text="{Binding ApplicationTitle}" Style="{StaticResource PhoneTextNormalStyle}" /> <TextBlock x:Name="PageTitle" Text="{Binding PageName}" Margin="-3,-8,0,0" Style="{StaticResource PhoneTextTitle1Style}" /> </StackPanel>
其中Bindind中 ApplicationTitle,PageName都是ViewModel 文件夹中MainViewModel中的属性
MainViewModel 和MainPage.xaml是通过这个代码段绑定到一起的。
在MainPage.xaml的根元素上声明
DataContext="{Binding Main, Source={StaticResource Locator}}
三。新建页面
参照MainPage页面,新建页面的时候也是新建一个ViewModel,一个View.xaml,并且在ViewModelLocator.cs中多注册一个返回View的属性方法绑定到xaml中就可以
新建viewmodel和view的时候也会看到mvvm安装后产生的新模板,可以直接使用
ublic class MvvmViewModel1 : ViewModelBase { /// <summary> /// Initializes a new instance of the MvvmViewModel1 class. /// </summary> public MvvmViewModel1() { ////if (IsInDesignMode) ////{ //// // Code runs in Blend --> create design time data. ////} ////else ////{ //// // Code runs "for real": Connect to service, etc... ////} } public string Hello { get { return "Hello World!~"; } } ////public override void Cleanup() ////{ //// // Clean own resources if needed //// base.Cleanup(); ////} }
在ViewModelLocator.cs中注册这个viewmodel
可以参考模仿原来的Main的属性
或者直接使用代码段Code Snippets
安装过mvvm后在安装的文件夹位置可以找到代码段,在vs的工具中--代码段管理器,导入这些
然后在 拼写 mvvmlocatorproperty 的时候就可以看到自动生成的属性,然后把属性名字改成正确的viewmodel名字就可以
相关文章推荐
- MVVM开发模式MVVM Light Toolkit
- Android开发模式之MVC,MVP和MVVM的简单介绍与区别
- 基于MVVM模式的程序开发(1)-目录
- Android 基于MVC的MVVM模式开发
- “Win10 UAP 开发系列”之 在MVVM模式中控制ListView滚动位置
- 用MVVM模式开发中遇到的零散问题总结(3)——自制正则表达式万能绑定转换器
- 在mvvm 开发模式下使用JSonModel解析数据
- 玩转Android之MVVM开发模式实战,炫酷的DataBinding!
- [2011.12.03] MVVM 模式开发Windows Phone程序处理页面导航
- ios开发中的基本设计模式(代理,观察者,MVC,单例,策略,工厂,MVVM,原型,Target-Action,通知(notification)机制)
- JavaScript大杂烩18 - Web开发的MVVM模式
- MVVM设计模式相关--Silverlight商业应用程序开发学习笔记(12)
- 理解javascript中的MVVM开发模式
- 献给初学iOS的小盆友们——微博app项目开发之十一自定义cell和MVVM模式
- 玩转Android之MVVM开发模式实战,炫酷的DataBinding!
- MVVM 开发的几种模式讨论(WPF)
- 跟我学MVVM模式开发
- 最近在C++_MVVM模式开发中一些小问题
- 理解javascript中的MVVM开发模式
- 使用MVVM模式开发自定义UserControl