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相关推荐

  1. MVVM开发模式MVVM Light Toolkit中使用事件和参数传递

    Light中定义了类GalaSoft.MvvmLight.Command.RelayCommand 这个类继承了ICommand方法,实现了其中的方法,Action就是一个方法参数 // 摘要: // ...

  2. 玩转Android之MVVM开发模式实战,炫酷的DataBinding!

    原文:http://blog.csdn.net/u012702547/article/details/52077515 ---------------------------------------- ...

  3. iOS OC mvvm开发模式

    相信大家对MVC开发都已经不陌生了,最经典开发模式 MVC构成: M:model也就是数据模型 V:View视图 C:Controller控制器 Model和View是相互独立的.View只负责页面展 ...

  4. Android-MVVM开发模式应用

    Android-MVVM开发模式应用 CSDN:https://blog.csdn.net/chenzhen200638/article/details/82185190 MVVM开发模式,是多种先进 ...

  5. Mvvm Light Toolkit 入门

    原文:Mvvm Light Toolkit 入门 前言 之前学习UWP的时候就一直看到有关MVVM的资料但是一直没有系统的去学,最近正好有时间,特地来攻破这个点,顺便学习一下VS与GitHub的链接和 ...

  6. Silverlight实用窍门系列:52.Silverlight中的MVVM框架极速入门(以MVVM Light Toolkit为例)...

    在本文将以MVVM Light Toolkit为例讲解MVVM框架在现实中的使用入门,首先我们在http://mvvmlight.codeplex.com/下载它的MVVM框架下来.也可以通过 htt ...

  7. WPF新手实践7:MVVM Light Toolkit(七、Messenger)

    关键字:WPF .Net C# MVVM Light Toolkit 框架 Visual Studio 2010 VS2010 Expression Blend 4 入门 教程 新手 实践 七.Mes ...

  8. MVVM Light Toolkit使用指南

    原文地址:  https://blog.csdn.net/ldld1717/article/details/77040077 概述 MVVM Light Toolkit是一个Android MVVM ...

  9. Android开发模式万佛朝中MVX(MVC、MVP、MVVM)

    今天公司的测试服务器开小差了,后台被吐槽的体无完肤,虽然我们都知道跟他没有什么关系,但是生活需要乐趣,总要有人背锅,哈哈!~~~暂时没有环境开发了,那就分享一下之前做的一篇关于Android开发模式的 ...

  10. 【三种常见架构开发模式:MVC、MVP、MVVM】

    写目录 1.常见的三种开发模式 (1)MVC模式(感觉重点在view) (2) MVP模式 (感觉重点在 Presenter) (3)MVVM模式(感觉重点在VM,viewModel) 1.常见的三种 ...

最新文章

  1. gulp.js 的安装以及使用
  2. sqlite 日期字段操作
  3. 了解SQL Server触发器及触发器中的事务
  4. Hibernate事务增删改查(第一部分)
  5. Android透明字体画法
  6. matlab解韩信点兵问题,小学数学题目巧解—韩信点兵问题
  7. 【Python爬虫】IOS苹果商店指定APP评论爬取
  8. C语言:请自定义函数求两个数的和、差、积、商!
  9. 如何找实习工作?怎么准备?
  10. HNB资讯里,中烟加热不燃烧有哪些牌子?
  11. TapTap 算法平台的 Serverless 探索之路
  12. html5技术之拉米牌游戏项目实战,国内首部HTML5技术之拉米牌游戏项目实战
  13. Ruby on Rails 实践:优化rvm安装、下载速度
  14. 高德地图怎么添加公司地址标注
  15. 仅仅有人物没背景的图片怎么弄_只会画人物不会画背景?这3种方法教你快速画背景!...
  16. 2022年C++学习路线以及知识整理汇总
  17. 研究生复试--中文自我介绍
  18. openGL学习笔记三: glu库及使用
  19. java并查集判断是否是连通图_并查集-判断图的连通
  20. Simulink代码生成:生成ASAP2文件

热门文章

  1. 关于map的几种非常规排序
  2. C# 通过反射获取枚举类型
  3. Linux内核源码分析--内核启动之(3)Image内核启动(C语言部分)(Linux-3.0 ARMv7)
  4. Redis内存相关知识
  5. python创建学生类和教师类_python基础知识 ——类
  6. 深度神经网络训练过程中为什么验证集上波动很大_一个值得深思的问题?为什么验证集的loss会小于训练集的loss...
  7. 数据库与表的操作之创建表(CREATE TABLE)
  8. JavaScript之流程控制
  9. Bean获取Spring容器
  10. 【渝粤教育】国家开放大学2018年秋季 0321-21T学前心理学 参考试题