一、MVVM概述

MVVM是Model-View-ViewModel的简写,主要目的是为了解耦视图(View)和模型(Model)。

MVVM结构如下:

相对于之前把逻辑结构写在Code Behind 的方式,MVVM模式几乎完全解耦了视图和逻辑业务的关系,通过数据绑定和命令绑定来处理UI属性及事件驱动;
同时,ViewModel中对属性的变更也会通知到View前端,让View前端实时更新。
 
二、MVVMLight概述
MVVMLight是一个实现MVVM模式的轻量级框架(相对于Prism),能够更好的帮助我们开发WPF 、Windows Phone、Windows 8、SilverLight相关项目。
MVVMLight的作者Laurent Bugnion 是个微软MVP,作者将代码开源到Codeplex上面:http://mvvmlight.codeplex.com/
MVVMLight的官网:http://www.mvvmlight.net/,上面有详细的介绍和视频文档,有兴趣可以了解下。
 
三、WPF项目中使用MVMLight框架
WPF项目中使用MVMLight框架主要包括以下两种方式:
方式一:
官网(http://www.mvvmlight.net/)上下载MVVMLight Toolkit,安装之后,VS模板中会出现MvvmLight项目模板,然后就可以直接使用该项目模板来创建项目了。
方式二:
利用NuGet安装
新建一个WPF工程,在引用处,鼠标右键,选择管理NuGet包,在弹出的界面中搜mvvmlight,然后安装最新的包即可。
 
安装成功后,会在我们新建的Wpf工程中自动生成ViewModel文件夹,里面包含MainViewModel.cs和ViewModelLocator.cs两个文件。
至此,一个基于MVVMLight框架的WPF项目基本搭建完成。
 
注:本文参考如下系列文章进行归纳与整理
 
 

MVVMLight学习笔记(一)---MVVMLight概述的更多相关文章

  1. OGG学习笔记01-基础概述

    OGG学习笔记01-基础概述 OGG(Oracle Golden Gate),最近几年在数据同步.容灾领域特别火,甚至比Oracle自己的原生产品DataGuard还要风光,主要是因为其跨平台.跨数据 ...

  2. MVVMLight学习笔记(七)---Messenger使用

    一.概述 Messenger中文解释为信使的意思,顾名思义,在MvvmLight中,它的主要作用是用于View和ViewModel.ViewModel和ViewModel之间的通信. 考虑以下场景: ...

  3. MVVMLight学习笔记(六)---DispatchHelper更新UI

    一.概述 在应用程序中,线程可以被看做是应用程序的一个较小的执行单位.每个应用程序都至少拥有一个线程,我们称为主线程.当调用和操作主线程的时候,该操作将动作添加到一个队列中,每个操作均按照将它们添加到 ...

  4. MVVMLight学习笔记(四)---RelayCommand初探

    一.概述 在MVVM Light框架中,主要通过命令绑定来进行事件的处理. WPF中,命令是通过实现 ICommand 接口创建的. ICommand 公开了两个方法(Execute 及 CanExe ...

  5. spring学习笔记(一) Spring概述

    博主Spring学习笔记整理大部分内容来自Spring实战(第四版)这本书.  强烈建议新手购入或者需要电子书的留言. 在学习Spring之前,我们要了解这么几个问题:什么是Spring?Spring ...

  6. Flink学习笔记:Connectors概述

    本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz ...

  7. MVVMLight学习笔记(三)---数据双向绑定

    一.概述 本文与其说是MVVMLight框架的学习,不如说是温故一下数据的双向绑定. 二.Demo 建立好MVVMLight框架后的Wpf工程后,建立一个Model.Model.View以及ViewM ...

  8. MVVMLight学习笔记(五)---RelayCommand深究

    一.概述 有时候,单纯的命令绑定不一定能满足我们的开发需求,比如我们需要在命令绑定的时候传递一个参数,这个时候,我们就需要使用RelayCommand的泛型版本了. RelayCommand的泛型版本 ...

  9. MVVMLight学习笔记(二)---MVVMLight框架初探

    一.MVVM分层概述 MVVM中,各个部分的职责如下: Model:负责数据实体的结构处理,与ViewModel进行交互: View:负责界面显示,与ViewModel进行数据和命令的交互: View ...

随机推荐

  1. C++ 标准模板库(STL)——容器(Containers)的用法及理解

    C++ 标准模板库(STL)中定义了通用的模板类和函数,这些模板类和函数可以实现多种流行和常用的算法和数据结构,如向量(vector).队列(queue).栈(stack).set.map等.这次主要 ...

  2. c语言:结果不理解

    #include <stdio.h> int main() { int a;float b; scanf("a=%d,b=%f",&a,&b); pri ...

  3. 记录APP 启动ACTIVITITY

    a.启动待测apkb.开启日志输出:adb logcat>D:/log.txt c.关闭日志输出:ctrl+cd.查看日志找寻: Displayed com.mm.android.hsy/.ui ...

  4. Java基础00-接口21

    1. 接口 1.1 接口概述 1.2 接口的特点 1.3 接口的成员特点 1.3.1 案例:猫和狗 public interface Jumpping { public void jump(); } ...

  5. Bootstrap框架--DataTables列表示例--添加判断

    一.参考代码 <%@ include file="./include/header.jsp"%> <!-- jquery.dataTables.css --> ...

  6. 第十四篇 -- QMainWindow与QAction(清空-全选-撤销-重做-关闭-语言选择)

    效果图: 这次添加了关闭-撤销-重做-全选-清空等功能,并添加了字体和字体大小选择.基本方法跟前面几篇类似. ui_mainWindow.py # -*- coding: utf-8 -*- # Fo ...

  7. Python基础之PyQt5关闭界面

    想让执行完程序后自动关闭窗口,而不用点击右上角叉叉的方法是self.close(),具体应用还是以treewidget为例. 前面我们写了一个treewidget的界面,并且实现了界面代码分离,具体实 ...

  8. 在Python中执行普通除法

    如果希望Python只执行普通的除法,那么可以在程序前加上以下语句: 1 from _future_ import division 如果通过命令行(比如在Linux系统上)运行Python,可以使用 ...

  9. 以两种异步模型应用案例,深度解析Future接口

    摘要:本文以实际案例的形式分析了两种异步模型,并从源码角度深度解析Future接口和FutureTask类. 本文分享自华为云社区<[精通高并发系列]两种异步模型与深度解析Future接口(一) ...

  10. 福昕foxit phantom pdf高级编辑器企业版10.1 pro安装破解教程

    本文提供福昕foxit phantom pdf高级编辑器企业版10.1的安装教程.pj教程,可以使用全部功能,注意的是此方法对个人版无效. 没有必要再尝试别的文章,仅看这一篇即可!别的文章亲测是通过修 ...