MVVM实践中的Command与CommandParameter的使用
内容摘要
这一讲,我在原先一篇博客文章(http://www.cnblogs.com/chenxizhang/archive/2011/10/01/2197786.html)基础上,针对MVVM中Command的使用做了演示和讲解。灵活的数据绑定,和命令绑定,是MVVM的核心精神,善加这两个功能,将大大地简化我们的应用程序开发,提供更加合理的代码架构。可以这么说,如果你在做WPF,Silverlight或者相关的开发,你是必须要了解MVVM的。但是至于你使用具体哪一个框架,倒不是那么重要的,他们基本都很类似。
视频地址
http://www.tudou.com/programs/view/SZXSes10MD0/
示例代码
using System.Windows;
using System.Windows.Input;
using GalaSoft.MvvmLight;
using GalaSoft.MvvmLight.Command;namespace WpfMVVM
{public class MainWindowViewModel:ViewModelBase{private string _UserName;public string UserName{get { return _UserName; }set{if (_UserName != value){_UserName = value;RaisePropertyChanged("UserName");}}}public ICommand ShowCommand{get{return new RelayCommand<string>((user) =>{MessageBox.Show(user);}, (user) => {return !string.IsNullOrEmpty(user);});}}}
}
<Window x:Class="WpfMVVM.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"Title="MainWindow"xmlns:local="clr-namespace:WpfMVVM"Height="350"Width="525"><Window.DataContext><local:MainWindowViewModel UserName="chenxizhang"></local:MainWindowViewModel></Window.DataContext><Grid><StackPanel><TextBox Text="{Binding UserName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"></TextBox><Button Content="Show"Command="{Binding ShowCommand}"CommandParameter="{Binding UserName}"></Button></StackPanel></Grid>
</Window>
转载于:https://www.cnblogs.com/chenxizhang/archive/2012/04/13/2446415.html
MVVM实践中的Command与CommandParameter的使用相关推荐
- 在MVVM实践中的Command与CommandParameter的使用
http://www.cnblogs.com/chenxizhang/archive/2012/04/13/2446415.html 转载于:https://www.cnblogs.com/chang ...
- tmux系统剪切板_实践中的tmux:与系统剪贴板集成
tmux系统剪切板 by Alexey Samoshkin 通过阿列克谢·萨莫什金(Alexey Samoshkin) 在实践中使用tmux:与系统剪贴板集成 (tmux in practice: i ...
- [译]5步实现Silverlight中的Command
在这里我打算分享一个十分轻量级的技巧实现Silverlight4中的Command. Step 1 – 实现ICommand接口 第一步是新建一个类来管理Command相关的逻辑,它需要实现IComm ...
- tmux 上滚_实践中的tmux:回滚缓冲区
tmux 上滚 by Alexey Samoshkin 通过阿列克谢·萨莫什金(Alexey Samoshkin) 实践中的tmux:回滚缓冲区 (tmux in practice: the scro ...
- sharedpreferences使用方法_Google 推荐在 MVVM 架构中使用 Kotlin Flow
前言 在之前分享过一篇 Jetpack 综合实战应用 Jetpack 实战:神奇宝贝 ,这个项目主要包了以下功能: 自定义 RemoteMediator 实现 network + db 的混合使用 ( ...
- 前端和后端开发人员比例_前端开发人员vs后端开发人员–实践中的定义和含义
前端和后端开发人员比例 Websites and applications are complex! Buttons and images are just the tip of the iceber ...
- 复旦肖仰华:领域知识图谱落地实践中的问题与对策
肖仰华博士,复旦大学计算机科学与技术学院教授,博士生导师,知识工场实验室负责人. 报告摘要:近年来,知识图谱技术进展迅速,各种领域知识图谱技术在很多领域或行业取得了显著落地效果.在领域知识图谱技术的落 ...
- SVM算法在项目实践中的应用!
↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:苏丽敏,Datawhale优秀学习者,北理工计算机硕士 支持向量机 ...
- 高可用 Prometheus 架构实践中的踩坑集锦
监控系统的历史悠久,是一个很成熟的方向,而 Prometheus 作为新生代的开源监控系统,慢慢成为了云原生体系的事实标准,也证明了其设计很受欢迎. 本文主要分享在 Prometheus 实践中遇到的 ...
最新文章
- 使用 Azure CLI 管理 Azure 虚拟网络和 Linux 虚拟机
- 创建个人网站所需php书籍,PHP个人网站架设连环讲(三)
- Linux下使用命令生成二维码
- 洛谷P1220 关路灯(区间dp)
- smarty课程---最最最简单的smarty例子
- 字节流写数据的两个小问题
- 第2天:Ansible-Inventory管理
- 简要分析电话光端机的常见问题
- hive元数据为什么要用mysql_Hive用MySQL做元数据保存的数据库时,mySQL设置
- linux 重新扫描pci设备,linux重新扫描pci总线
- HDU 2899 :(二分求最小值)
- CherryPy上传文件
- Java 在线反编译反编译工具
- 保定市身份证前6位代表地
- 打印机 计算机 usb,电脑没法识别打印机(USB接口)
- 读书会 | 第一季读书会《蛤蟆先生去看心理医生》完美收官啦
- Alist小雅超集Docker搭建排坑指南
- 酷狗音乐应用在计算机里怎么拖出来,电脑如何使用酷狗音乐剪辑音乐|电脑使用酷狗音乐剪辑音乐的方法...
- 基于工厂智能化改造——数字孪生映射应用案例解析
- 高通骁龙855性能首测:继续领先安卓阵营,但离苹果仍有差距...
热门文章
- 【HDU 3400】Line belt(三分法)
- Linux命令(9)—— 文件的压缩与解压缩
- display block 无法显示_display:inline-block产生的问题
- go 使用sarama写入kafka数据时间戳问题
- 【Linux】Linux中vim的使用
- Docker环境下:ImportError: libSM.so.6: cannot open shared object file: No such file or directory
- tf报错 之 assertion failed: [Need value.shape >= size, got ] [336 210 3] [224 224 3]
- 清理cin输入缓冲区_输入缓冲区究竟有啥秘密?
- std::unique_lock与std::lock_guard区别示例
- 学习笔记(01):英特尔® OpenVINO™工具套件初级课程-如何加速视频处理进程?