【MVVM Light】Messager的使用】的更多相关文章

一.前言       在MVVM编程的模式中,有时候我们会遇到一个很尴尬的情况: 若干个xaml.cs都复用一个ViewModel,当ViewModel想传递一个特定的消息给某一个xaml.cs的时候,我们该怎么做? 或者当一个.cs不方便在另一个.cs文件中new出来使用,但是我确实想传递消息给那个.cs,该怎么办? 今天就说说MVVM Light中的Messager类,它继承自IMessager接口. 二.使用方法       发送页面中: Messenger.Default.Send<TM…
比喻:像漂流瓶一样发送一个Message,任何人有兴趣就可以拾起来. MVVM Light中的Message的使用分为三个步骤: 1.创建一个类,包含要传递的Message. 2.在ViewModel中,实例化这个Message类并广播这个Message. 3.在MainPage.xaml.cs中注册此Message并在接收到的时候处理它. 在项目中创建一个新Class,命名为GoToPageMessage. 1: using System; 2: 3: namespace MvvmLightN…
MVVM Light须要注意的10个问题 从使用XAML技术基础開始(实际上并非非常久曾经).我便关注MVVM(Model – View – ViewModel)模式.偶然接触到MVVM Light不久后便喜欢上它的工作方式. 不光我包含业余和专业开发者在内的非常多开发者都喜欢这个函数库. 依照开发者意愿,MVVM Light 不是一个框架而是函数库,该函数库注重于探究建立一个MVVM结构而且提供一些额外的帮助类以便于应用. MVVM Light在发展过程中改变了非常多.非常多元素被增加又有非常…
原文:[MVVM Light]Messenger 的使用 当我们使用MVVM开发模式进行开发时,ViewModel之间的通信常常是很头疼的事情,好在MVVM Light提供了Messenger类可以轻松的在ViewModel之间传递消息. Messenger Messenger 其他类成员可以通过Register 方法 来建立与Messenger的联系,注册时包含当收到Message的时候要执行的方法.当使用Send方法时,注册的相关的方法将会被调用. The Messager is a cla…
原文:Mvvm Light Toolkit 入门 前言 之前学习UWP的时候就一直看到有关MVVM的资料但是一直没有系统的去学,最近正好有时间,特地来攻破这个点,顺便学习一下VS与GitHub的链接和MarkDown的语法. 下面的附件里有这篇博客里用到的Demo工程,我已经加上了比较详细的注释,可以帮助理解代码,欢迎点击查看. MVVM简介 MVVM(Model-View-ViewModel)是一种程序模式,是MVP(Model-View-Presenter)模式与WPF结合的应用方式时发展演…
一.前言 作为一个初入软件业的新手,各种设计模式与框架对我是眼花缭乱的.所以当我接触到这些新知识的时候就希望自己能总结几个步骤,以便更好更方便的在日常工作中进行使用. MVVM顾名思义就是Model-View-View Model的缩写.老司机们一直说绑定绑定,我就纳闷了View是展示,Model是模型,那View Model怎么写处理的逻辑呢?它是如何将Model和View联系到一起的呢?这是我第一次听到MVVM时产生的疑惑.经过了一些编程经历,大致明白了整个过程.本文不会过分强调MVVM中一…
MVVM Light 一个窗口承载两个视图   原文地址:http://www.codeproject.com/Articles/323187/MVVMLight-Using-Two-Views 本文并不是对原文逐句翻译,为了尽量通俗易懂,本人对原文有所增删. 如果你对MVVM还不太熟悉可以先看看本人之前的关于MVVM的博客: http://www.cnblogs.com/zhangzhi19861216/archive/2013/03/19/WPF-MVM.html 如果你对MVVMLight…
Mvvm Light Toolkit for WPF/Silverlight系列之搭建mvvmlight开发框架   本章节,我将通过示例介绍如何搭建mvvmlight开发环境.示例中的我会针对wpf代码进行介绍,SL下有区别的地方我会注明,下载示例中会同时包含WPF和SL源代码,但是只会提供VS2010版本的示例程序. 前提条件:按照前一章节安装的模板和代码片段,或者下载 MVVM Light Toolkit V3 开发环境:VS2010/Blend4 为了方便大家了解框架 本章节,我将通过示…
4.关于子视图, MVVMLight Using Two Views:http://www.codeproject.com/Articles/323187/MVVMLight-Using-Two-Views 3.这篇讲的不错:MVVM.MVVMLight.MVVMLight Toolkit之我见 2.using the code snippet: a.in Visual Studio, in the code behind file, MainViewModel.cs, enter the le…
1.新建WPF空白项目. 2.NuGet 程序包中安装 3.根据MVVM分层结构,建立包含Model.View.ViewModel三层文件夹 如图: 1.View负责前端展示,与ViewModel进行数据和命令的交互. 2.ViewModel,负责前端视图业务级别的逻辑结构组织,并将其反馈给前端. 3.Model,主要负责数据实体的结构处理,与ViewModel进行交互.   到此,MVVM Light 框架基本形成,新手入门,请各位老师多提意见,下一篇 我将学习如何在ViewModel / M…
原文:MVVM Light Toolkit使用指南 原文地址:  https://blog.csdn.net/ldld1717/article/details/77040077 概述 MVVM Light Toolkit是一个Android MVVM 轻量级工具库,主要目的是更快捷方便的构建Android MVVM应用程序,工具库添加了一些Data Binding 不支持的属性,还有添加对控件事件的封装,同时提个一个全局消息通道方便ViewModel 之间的通信,Toolkit主要包括两部分Bi…
系列一:看的迷迷糊糊的 一.Mvvm Light Toolkit for wpf/silverlight系列之准备工作 二.Mvvm Light Toolkit for wpf/silverlight系列之搭建mvvmlight开发框架 三.Mvvm Light Toolkit for wpf/silverlight系列之数据绑定 四.Mvvm Light Toolkit for wpf/silverlight系列之Command和Events 五.Mvvm Light Toolkit for…
Here is how you can install MVVM Light Toolkit  via NuGet in an easy way using only Visual Studio. Step1. Create a new Widows Phone Application Project Step2. If you have not used NuGet before then go to VisualStudio Tools-> ExtentionManager as demon…
今天学习MVVM架构中“事件”的添加并调用,特记录如下,学习资料均来自于网络,特别感谢翁智华 的 利刃 MVVMLight 6:命令基础 在MVVM Light框架中,事件是WPF应用程序中UI与后台代码进行交互的最主要方式,与传统方式不同,mvvm中主要通过绑定到命令来进行事件的处理. 相对于CodeBehind 的方式,使用命令会好很多:最大的特点就是解耦View和ViewModel的行为交互,将视图的显示和业务逻辑分开. 对View上的某个元素进行命令的绑定,触发点击操作的时候,这个按钮实…
本文是WPF学习11:基于MVVM Light 制作图形编辑工具(2)的后续 这一次的目标是完成 两个任务. 本节完成后的效果: 本文分为三个部分: 1.对之前代码不合理的地方重新设计. 2.图形可选择外框颜色,填充颜色的实现简介. 3.拖动图形的实现简介. 修改之前的代码 我们在写代码的时候,经常回头看之前的代码,如果觉得之前的代码有问题,这时候条件如果允许,就改了吧. 做出的改动: 1.修改Image为Canvas. 目的:使图形的缩放和移动这部分的代码实现大大简化. 去除了配置按钮.原因是…
本文是WPF学习10:基于MVVM Light 制作图形编辑工具(1)的后续 这一次的目标是完成 两个任务. 画布 效果: 画布上,选择的方案是:直接以Image作为画布,使用RenderTargetBitmap绑定为Image的图片源,这样可以为后续的导出图片功能提供很大的便利. 对拖动栏XAML进行如下修改: <ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="…
图形编辑器的功能如下图所示: 除了MVVM Light 框架是一个新东西之外,本文所涉及内容之前的WPF学习0-9基本都有相关介绍. 本节中,将搭建编辑器的界面,搭建MVVM Light 框架的使用环境. 界面 <Window x:Class="GraphEditor.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http:…
今天学习MVVM架构中“属性”的添加并调用,特记录如下,学习资料均来自于网络,特别感谢翁智华的利刃 MVVMLight系列. 一个窗口的基本模型如下: View(视图) -> ViewModel (视图模型)-> 多个Model(模型) 注: 视图是用户在屏幕上看到的结构.布局和外观(UI) 视图模型是暴露公共属性和命令的视图的抽象.在视图模型中,绑定器在视图和数据绑定器之间进行通信. 模型是指代表真实状态内容的领域模型(面向对象),或指代表内容的数据访问层(以数据为中心). 下面开始学习最基…
  public  class MainStudentModel:ViewModelBase    { //实体        private StudentModel stu = new StudentModel();          public  string StuName        {            get { return stu.Name; }            set            {                stu.Name = value; /…
After I create a MvvmLight(Win81) project, I want add a new view , but there is only MvvmView(Win8), there is no  MvvmView(Win81) 在源代码 mvvmlight_638169c85b8c\Installer\InstallItems\GalaSoft.MvvmLight.Templates\ItemTemplates中找到View.Win81等3个压缩文件,将其拷贝至C…
RelayCommand有8个,看似很多,其实就是几个变化的组合: 1.是否Generic 2. 执行是使用lambda表达式还是method 3.是否有CanExecute 这些都在源代码Snippets中…
原文:MVVM模式的几个开源框架 实现MVVM的框架有很多,如: • MVVM Light Toolkit: http://mvvmlight.codeplex.com • Microsoft Prism http://compositewpf.codeplex.com/ • Calcium SDK http://calciumsdk.net/ • Caliburn http://caliburn.codeplex.com/ •Caliburn  Micro http://caliburnmic…
This gives you the ability to create a trigger on an event and bind it to an ICommand on the view model. <Button> <i:Interaction.Triggers> <i:EventTrigger EventName="MouseEnter" > <i:InvokeCommandAction Command="{Bindin…
知识预备 阅读本文,我假定你具备以下知识: C#和WPF基础知识 Lambda表达式 清楚ViewModel的职责 如果我们的程序需要弹出一个MessageBox,我们应该怎么做? 我见过不少人在ViewModel里面写着:MessageBox.Show("xxx"); 程序的功能看似没有什么问题,日后我要把这个ViewModel用到WinRT上,你是不是傻眼了?WinRT是没有MessageBox的. 为什么会出现这样的情况呢?请仔细想想,弹出MessageBox是ViewModel…
知识预备 阅读本文,我假定你具备以下知识: C# WPF基础知识 知道WPF的命令 WPF相对WinForm加了一种Command的机制,对用户的操作进行更加灵活的处理,相信很多朋友知道并用过Routed Command,但这不是本文讨论的重点,本文主要讨论在MVVM模式中,用户输入与后台数据的交互所用的Command. ICommand接口 在WPF中,所有的命令都是基于ICommand接口的,ICommand的接口有三个成员 Execute 方法 这个方法,顾名思义,是在Command被触发…
上篇我们体验了一个从事件处理程序到MVVM程序的转变,在最后也留下了一个问题:RaisePropertyChanged的原理是什么?今天我们来一探究竟. 通过上节做的小例子我们知道,仅仅修改ViewModel的数据,UI是不会发生变化的,在数据的值被更改后,我们要通知UI,让UI重新来获取数据,这种具备通知能力的属性,就是我们今天的主角--通知属性. 知识预备 阅读本文,我假定你具备以下知识 C#.WPF 基础知识 .NET 反编译器的使用 能看懂基本的IL代码(可选) INotifyPrope…
知识预备 阅读本文,我假定你已经具备以下知识: C#.WPF基础知识 了解Lambda表达式和TPL 对事件驱动模型的了解 知道ICommand接口 发生了什么 某程序员接到一个需求,编写一个媒体渲染器,效果如图,功能就是渲染媒体并在UI上面报告进度,看看他是怎么实现的. 事件驱动模型的实现 首先是界面 三个TextBlock分别负责显示状态.进度和百分号,还有一个按钮让用户启动渲染操作. 点击按钮时,异步调用Render方法. 在Render方法里面更新UI,模拟渲染操作,更新进度. 看起来不…
最近学的一篇课文<说不尽的狗>竟让我有了写<说不尽的MVVM>这一想法,事非亵渎,实出无奈.我在刚学WPF不久时听说有MVVM这种东西,做了下尝试,发现他能给程序的设计带来很大的好处.好东西当然要分享给大家,下面,我们就来认识下MVVM. 预备知识 阅读本文,我假定你具备以下知识: C# 基础知识 XAML基础知识 对事件驱动模型的了解 听说过MVC.MVP.单元测试 MVVM是什么,好吃吗? MVVM全称为Model-View- View Model,是软件工程中的一种软件设计模…
In my opinion, if you are using WPF or Silverlight you should be using the MVVM design pattern. It is perfectly suited to the technology and allows you to keep your code clean and easy to maintain. The problem is, there are a lot of online resources…
[源码下载] 重新想象 Windows 8 Store Apps (55) - 绑定: MVVM 模式 作者:webabcd 介绍重新想象 Windows 8 Store Apps 之 绑定 通过 MVVM 模式实现数据的添加.删除.修改和查询 示例1.Model 层Binding/MVVM/Model/ProductDatabase.cs /* * Model 层的数据持久化操作(本地或远程) * * 本例只是一个演示 */ using System; using System.Collect…