WPF新手实践7:MVVM Light Toolkit(七、Messenger)
关键字:WPF .Net C# MVVM Light Toolkit 框架 Visual Studio 2010 VS2010 Expression Blend 4 入门 教程 新手 实践
七、Messenger
一个用户体验良好的登录界面应该能够记录最后一次登录的用户ID以避免无意义的重复输入。为了实现这个功能,我将继续对上一篇的登录页面进行加工。
1、在LoginViewModel.cs中,再添加一个RelayCommand类型的属性LoadedCommand作为响应View层页面载入完成事件的Command对象,并在构造函数中对其进行初始化(PageLoaded()方法里涉及的两个MoveInputFocusTo方法的具体实现稍后详述)。
2、在Blend 4中,从“资产”页签的列表中选择“行为”,将“EventToCommand”拖拽到[Page]上,把默认名称改为PageLoaded。
3、将PageLoaded的Command属性绑定到LoadedCommand(注意“属性”页签中“触发器”一栏的EventName要选择Loaded),如下两图所示。
4、假设作为Model的User类中有一个LoadLastLoginInfo()方法会在每次构造新的User对象时从配置文件中读取上一次成功登录的用户ID,那么作为View层的LoginPage就需要根据用户ID的输入框是否有值来决定输入焦点究竟是应该落在用户ID输入框还是密码输入框。可是不论哪种输入框,都没有一个可以用来绑定到ViewModel层的属性来标识该元素应当获得输入焦点。如果想这么做,必须要调用该元素的Focus()方法。问题出现了:我不想让ViewModel层知道是哪种界面元素需要获得输入焦点。为了避免View层和ViewModel层的耦合太紧,我需要用MVVM Light Toolkit的Messenger来解除它们之间的强引用。首先,创建一个新的类MoveLoginInputFocusMessage,其中包含一个string类型的属性InputFieldName。
5、在LoginViewModel.cs中,实现PageLoaded()方法里涉及的两个MoveInputFocusTo方法(消息发送者)。
6、在LoginPage.xaml.cs中,修改LoginPage的构造函数,注册消息接收者并提供MoveLoginInputFocus()方法作为具体实现。
编译通过。
转载于:https://www.cnblogs.com/phoenixtrees/archive/2011/05/10/2041921.html
WPF新手实践7:MVVM Light Toolkit(七、Messenger)相关推荐
- 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 ...
- MVVM Light Toolkit使用指南
原文地址: https://blog.csdn.net/ldld1717/article/details/77040077 概述 MVVM Light Toolkit是一个Android MVVM ...
- MVVM开发模式MVVM Light Toolkit中使用事件和参数传递
Light中定义了类GalaSoft.MvvmLight.Command.RelayCommand 这个类继承了ICommand方法,实现了其中的方法,Action就是一个方法参数 // 摘要: // ...
- 【MVVM Light】新手初识MVVM,你一看就会
[MVVM Light]新手初识MVVM,你一看就会 原文:[MVVM Light]新手初识MVVM,你一看就会 一.前言 作为一个初入软件业的新手,各种设计模式与框架对我是眼花缭乱的.所以当我接触到 ...
- WPF学习12:基于MVVM Light 制作图形编辑工具(3)
本文是WPF学习11:基于MVVM Light 制作图形编辑工具(2)的后续 这一次的目标是完成 两个任务. 本节完成后的效果: 本文分为三个部分: 1.对之前代码不合理的地方重新设计. 2.图形可选 ...
- [译]WPF 应用程序和MVVM设计模式 ——Josh Smith
这篇文章讨论: 模式与WPF MVP模式 为什么MVVM更加适用于WPF 用MVVM构建一个应用程序 译文地址: http://www.cnblogs.com/lujiao_cs/ar ...
- silverlight 学习笔记 (五): MVVM Light Toolkits 之 RealCommand
在MVVM模式中我们在设计ViewModel时需要定义大量的事件处理程序,这些事件处理程序可以通过在View中绑定进行触发,具体时间参考前面所讲.ViewModel中的需要将事件定义为公开的继承ICa ...
- 激光SLAM理论与实践-第五期 第七次作业
1.章节: 1.激光SLAM理论与实践-第五期 第一次作业(矩阵坐标变换) 2.激光SLAM理论与实践-第五期 第二次作业(里程计标定) 3.激光SLAM理论与实践-第五期 第三次作业(去运动畸变) ...
最新文章
- Ubuntu16.04安装qt
- 写过Mybatis插件?那说说自定义插件是如何加载的吧?
- 项目管理 计算机仿真,分析计算机仿真技术在工程项目施工管理中的运用.pdf
- Oracle Database 11g Express Edition学习笔记
- nginx php-fpm 根目录,缓存 – Nginx和/或php5-fpm会记住符号链接的根目录
- 为什么计算机无法访问u盘,WIN10系统无法访问U盘怎么处理_win10电脑u盘无法访问拒绝访问如何解决-win7之家...
- Linux中常用的scree的安装和常用的screen命令
- 前端coursor设置为pointer在移动端点击会出现蓝色背景解决
- STA | 12. 时序签核方法学及实战经验
- JNB, JBE, JGE, JLE 指令的转移条件
- 由浪潮8控存储登顶SPC-1所想,存储系统一个长期被忽略的指标
- linux服务器怎么刻录光盘,Ubuntu 下使用K3B软件刻录光盘(图)
- DIY手动定制一个属于自己的软件安装管理器工具盘[二]
- TIKTOK海外直播公会如何申
- Dell电脑如何设置Fn键和其它功能键的组合
- 使用信锐无线控制器对接营运商portal服务器的原理分析与排错
- [渝粤教育] 昆明理工大学 单片机原理及接口技术(宋庆和) 参考 资料
- EXCEL中的POWER QUERY功能简介
- 杜克大学计算机科学博士,博士生毕业真有那么难?看看杜克大学的数据
- 图片无损放大,让细节美到毛孔——PhotoZoom Pro小能手来咯