内容摘要

这一讲,我在原先一篇博客文章(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的使用相关推荐

  1. 在MVVM实践中的Command与CommandParameter的使用

    http://www.cnblogs.com/chenxizhang/archive/2012/04/13/2446415.html 转载于:https://www.cnblogs.com/chang ...

  2. tmux系统剪切板_实践中的tmux:与系统剪贴板集成

    tmux系统剪切板 by Alexey Samoshkin 通过阿列克谢·萨莫什金(Alexey Samoshkin) 在实践中使用tmux:与系统剪贴板集成 (tmux in practice: i ...

  3. [译]5步实现Silverlight中的Command

    在这里我打算分享一个十分轻量级的技巧实现Silverlight4中的Command. Step 1 – 实现ICommand接口 第一步是新建一个类来管理Command相关的逻辑,它需要实现IComm ...

  4. tmux 上滚_实践中的tmux:回滚缓冲区

    tmux 上滚 by Alexey Samoshkin 通过阿列克谢·萨莫什金(Alexey Samoshkin) 实践中的tmux:回滚缓冲区 (tmux in practice: the scro ...

  5. sharedpreferences使用方法_Google 推荐在 MVVM 架构中使用 Kotlin Flow

    前言 在之前分享过一篇 Jetpack 综合实战应用 Jetpack 实战:神奇宝贝 ,这个项目主要包了以下功能: 自定义 RemoteMediator 实现 network + db 的混合使用 ( ...

  6. 前端和后端开发人员比例_前端开发人员vs后端开发人员–实践中的定义和含义

    前端和后端开发人员比例 Websites and applications are complex! Buttons and images are just the tip of the iceber ...

  7. 复旦肖仰华:领域知识图谱落地实践中的问题与对策

    肖仰华博士,复旦大学计算机科学与技术学院教授,博士生导师,知识工场实验室负责人. 报告摘要:近年来,知识图谱技术进展迅速,各种领域知识图谱技术在很多领域或行业取得了显著落地效果.在领域知识图谱技术的落 ...

  8. SVM算法在项目实践中的应用!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:苏丽敏,Datawhale优秀学习者,北理工计算机硕士 支持向量机 ...

  9. 高可用 Prometheus 架构实践中的踩坑集锦

    监控系统的历史悠久,是一个很成熟的方向,而 Prometheus 作为新生代的开源监控系统,慢慢成为了云原生体系的事实标准,也证明了其设计很受欢迎. 本文主要分享在 Prometheus 实践中遇到的 ...

最新文章

  1. 使用 Azure CLI 管理 Azure 虚拟网络和 Linux 虚拟机
  2. 创建个人网站所需php书籍,PHP个人网站架设连环讲(三)
  3. Linux下使用命令生成二维码
  4. 洛谷P1220 关路灯(区间dp)
  5. smarty课程---最最最简单的smarty例子
  6. 字节流写数据的两个小问题
  7. 第2天:Ansible-Inventory管理
  8. 简要分析电话光端机的常见问题
  9. hive元数据为什么要用mysql_Hive用MySQL做元数据保存的数据库时,mySQL设置
  10. linux 重新扫描pci设备,linux重新扫描pci总线
  11. HDU 2899 :(二分求最小值)
  12. CherryPy上传文件
  13. Java 在线反编译反编译工具
  14. 保定市身份证前6位代表地
  15. 打印机 计算机 usb,电脑没法识别打印机(USB接口)
  16. 读书会 | 第一季读书会《蛤蟆先生去看心理医生》完美收官啦
  17. Alist小雅超集Docker搭建排坑指南
  18. 酷狗音乐应用在计算机里怎么拖出来,电脑如何使用酷狗音乐剪辑音乐|电脑使用酷狗音乐剪辑音乐的方法...
  19. 基于工厂智能化改造——数字孪生映射应用案例解析
  20. 高通骁龙855性能首测:继续领先安卓阵营,但离苹果仍有差距...

热门文章

  1. 【HDU 3400】Line belt(三分法)
  2. Linux命令(9)—— 文件的压缩与解压缩
  3. display block 无法显示_display:inline-block产生的问题
  4. go 使用sarama写入kafka数据时间戳问题
  5. 【Linux】Linux中vim的使用
  6. Docker环境下:ImportError: libSM.so.6: cannot open shared object file: No such file or directory
  7. tf报错 之 assertion failed: [Need value.shape >= size, got ] [336 210 3] [224 224 3]
  8. 清理cin输入缓冲区_输入缓冲区究竟有啥秘密?
  9. std::unique_lock与std::lock_guard区别示例
  10. 学习笔记(01):英特尔® OpenVINO™工具套件初级课程-如何加速视频处理进程?