MVVM开发模式MVVM Light Toolkit
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。
//返回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名字就可以
转载于:https://www.cnblogs.com/zjypp/archive/2012/05/02/2479074.html
MVVM开发模式MVVM Light Toolkit相关推荐
- MVVM开发模式MVVM Light Toolkit中使用事件和参数传递
Light中定义了类GalaSoft.MvvmLight.Command.RelayCommand 这个类继承了ICommand方法,实现了其中的方法,Action就是一个方法参数 // 摘要: // ...
- 玩转Android之MVVM开发模式实战,炫酷的DataBinding!
原文:http://blog.csdn.net/u012702547/article/details/52077515 ---------------------------------------- ...
- iOS OC mvvm开发模式
相信大家对MVC开发都已经不陌生了,最经典开发模式 MVC构成: M:model也就是数据模型 V:View视图 C:Controller控制器 Model和View是相互独立的.View只负责页面展 ...
- Android-MVVM开发模式应用
Android-MVVM开发模式应用 CSDN:https://blog.csdn.net/chenzhen200638/article/details/82185190 MVVM开发模式,是多种先进 ...
- Mvvm Light Toolkit 入门
原文:Mvvm Light Toolkit 入门 前言 之前学习UWP的时候就一直看到有关MVVM的资料但是一直没有系统的去学,最近正好有时间,特地来攻破这个点,顺便学习一下VS与GitHub的链接和 ...
- Silverlight实用窍门系列:52.Silverlight中的MVVM框架极速入门(以MVVM Light Toolkit为例)...
在本文将以MVVM Light Toolkit为例讲解MVVM框架在现实中的使用入门,首先我们在http://mvvmlight.codeplex.com/下载它的MVVM框架下来.也可以通过 htt ...
- WPF新手实践7:MVVM Light Toolkit(七、Messenger)
关键字:WPF .Net C# MVVM Light Toolkit 框架 Visual Studio 2010 VS2010 Expression Blend 4 入门 教程 新手 实践 七.Mes ...
- MVVM Light Toolkit使用指南
原文地址: https://blog.csdn.net/ldld1717/article/details/77040077 概述 MVVM Light Toolkit是一个Android MVVM ...
- Android开发模式万佛朝中MVX(MVC、MVP、MVVM)
今天公司的测试服务器开小差了,后台被吐槽的体无完肤,虽然我们都知道跟他没有什么关系,但是生活需要乐趣,总要有人背锅,哈哈!~~~暂时没有环境开发了,那就分享一下之前做的一篇关于Android开发模式的 ...
- 【三种常见架构开发模式:MVC、MVP、MVVM】
写目录 1.常见的三种开发模式 (1)MVC模式(感觉重点在view) (2) MVP模式 (感觉重点在 Presenter) (3)MVVM模式(感觉重点在VM,viewModel) 1.常见的三种 ...
最新文章
- gulp.js 的安装以及使用
- sqlite 日期字段操作
- 了解SQL Server触发器及触发器中的事务
- Hibernate事务增删改查(第一部分)
- Android透明字体画法
- matlab解韩信点兵问题,小学数学题目巧解—韩信点兵问题
- 【Python爬虫】IOS苹果商店指定APP评论爬取
- C语言:请自定义函数求两个数的和、差、积、商!
- 如何找实习工作?怎么准备?
- HNB资讯里,中烟加热不燃烧有哪些牌子?
- TapTap 算法平台的 Serverless 探索之路
- html5技术之拉米牌游戏项目实战,国内首部HTML5技术之拉米牌游戏项目实战
- Ruby on Rails 实践:优化rvm安装、下载速度
- 高德地图怎么添加公司地址标注
- 仅仅有人物没背景的图片怎么弄_只会画人物不会画背景?这3种方法教你快速画背景!...
- 2022年C++学习路线以及知识整理汇总
- 研究生复试--中文自我介绍
- openGL学习笔记三: glu库及使用
- java并查集判断是否是连通图_并查集-判断图的连通
- Simulink代码生成:生成ASAP2文件
热门文章
- 关于map的几种非常规排序
- C# 通过反射获取枚举类型
- Linux内核源码分析--内核启动之(3)Image内核启动(C语言部分)(Linux-3.0 ARMv7)
- Redis内存相关知识
- python创建学生类和教师类_python基础知识 ——类
- 深度神经网络训练过程中为什么验证集上波动很大_一个值得深思的问题?为什么验证集的loss会小于训练集的loss...
- 数据库与表的操作之创建表(CREATE TABLE)
- JavaScript之流程控制
- Bean获取Spring容器
- 【渝粤教育】国家开放大学2018年秋季 0321-21T学前心理学 参考试题