WPF 中的命令是通过实现 ICommand 接口创建的。ICommand 的 WPF 实现是 RoutedCommand 类。

  WPF 中的主要输入源是鼠标、键盘、墨迹和路由命令。更加面向设备的输入使用 RoutedEvent 来通知应用程序页中的对象已发生了输入事件。

ICommand接口只要是用于绑定Button等的点击事件,当数据改变的时候,会做出一些相应的通知,

当继承ICommand接口后,下面的方法则需要实现,它们之间的关系如图所示:

定义一个类实现ICommand接口

   public class DelegateCommand : ICommand{public Action<object> ExecuteAction { get; set; }public Func<object,bool> CanExecuteFunc { get; set; }public event EventHandler CanExecuteChanged;public bool CanExecute(object parameter){if (CanExecuteFunc == null)return true;returnCanExecuteFunc(parameter);}public void Execute(object parameter){if (ExecuteAction == null)return;ExecuteAction(parameter);}}

在调用类中添加方法

public MainWindow(){InitializeComponent();AddCommand = new DelegateCommand();AddCommand.ExecuteAction = (para)=>{MessageBox.Show("我是按钮");};}public DelegateCommand AddCommand { get; set; }

在vm中command的绑定代码

<Button Content="点击我" Command="{Binding AddCommand}" />

转载于:https://www.cnblogs.com/lunawzh/p/4806178.html

ICommand接口相关推荐

  1. ArcEngine(五)用ICommand接口实现放大缩小

    放大 private void iCommand缩小ToolStripMenuItem_Click(object sender, EventArgs e){ICommand command = new ...

  2. PHP设计模式(4)命令链模式

    命令链 模式以松散耦合主题为基础,发送消息.命令和请求,或通过一组处理程序发送任意内容.每个处理程序都会自行判断自己能否处理请求.如果可以,该请求被处理,进程停止.您可以为系统添加或移除处理程序,而不 ...

  3. ArcEngine的ToolbarControl解析

    转自Love Lyre原文 ArcEngine的ToolbarControl解析 ToolbarControlClass有三个主要的接口: IToolbarControl, IToolbarContr ...

  4. Command模式的实践

    Command模式的实践 主题 文章将通过一个简单的 Shell  库来阐述 Command模式的一个实际应用. 如何使用 Shell 库 在开始之前,我们先来看看如何使用这个 Shell 库. 解决 ...

  5. 五种常见的 PHP 设计模式

    设计模式 一书将设计模式引入软件社区,该书的作者是 Erich Gamma.Richard Helm.Ralph Johnson 和 John Vlissides Design(俗称 "四人 ...

  6. 五种常见的PHP设计模式

    2019独角兽企业重金招聘Python工程师标准>>> 五种常见的PHP设计模式 设计模式 一书将设计模式引入软件社区,该书的作者是 Erich Gamma.Richard Helm ...

  7. [书目20130216]深入浅出WPF

    目录 写作缘起 WPF之What & Why 致谢 第一部分  深入浅出话XAML 第1章  XAML概览 2 1.1  XAML是什么 2 1.2  XAML的优点 3 第2章  从零起步认 ...

  8. 深入浅出话命令(Command)-笔记(-)

    深入浅出话命令(Command)-笔记(-) 一 基本概念 命令的基本元素: 命令(Command):实现了ICommand接口的类,平常使用最多的是RoutedCommand类. 命令源(Comma ...

  9. WPF自学入门(十一)WPF MVVM模式Command命令 WPF自学入门(十)WPF MVVM简单介绍...

    WPF自学入门(十一)WPF MVVM模式Command命令 在WPF自学入门(十)WPF MVVM简单介绍中的示例似乎运行起来没有什么问题,也可以进行更新.但是这并不是我们使用MVVM的正确方式.正 ...

最新文章

  1. “Account is trusted for delegation is not shown || cannot see the Delegation tab
  2. HDU 3251 Being a Hero
  3. ubuntu14.04无法连接有线连接问题
  4. sourceTree添加git密钥步骤
  5. cacti安装配置详解_MySQL实战001:8.0免安装版服务配置详解
  6. ad怎么修改栅格_江苏宋女士回农村100万盖洋房,6个闺蜜结伴养老,你怎么看?...
  7. matlab tanh导数,谁知道tanh(x)的二阶导数-tanh-数学-郝啪韭同学
  8. 三大云厂商 ARM 架构服务器性能对比
  9. c语言如何算字节,C语言中结构字节的计算方法
  10. 性能测试----测试执行
  11. 常用计算机网络技术缩写词和术语
  12. 《MapReduce: Simplified Data Processing on Large Clusters》译文
  13. 程序员用c语言写的新年祝福,程序员的新年祝福:Happy New Year
  14. 信捷 plc c语言 pdf,信捷plc学习笔记复习过程.pdf
  15. 杭电-1878 欧拉回路
  16. 如何申请注册企业邮箱?公司企业邮箱功能有哪些好用?
  17. OpenCore Gen-X :一键制作黑苹果OpenCore EFI文件
  18. PostgreSQL SQL 语言:函数和操作符
  19. 用5行代码构建自定义训练的对象检测模型
  20. USB 2.0 suspend resume

热门文章

  1. V-rep学习笔记:机器人逆运动学数值解法(Damped Least Squares / Levenberg-Marquardt Method)...
  2. js渐渐入门之懒人框架- laz.js
  3. 自动驾驶算法-滤波器系列(五)——高级运动模型在UKF中的应用
  4. 二相四线制步进电机驱动原理与Proteus仿真
  5. 《统计学基本概念和方法》读书笔记+读后感(1)
  6. dubbo原理和机制_面试官几个 Dubbo 微服务框架问题,把我整懵了?
  7. 编译原理第三版王生原pdf_CS143:编译原理 | 环境搭建HelloWorld
  8. 原子自增_多线程系列-(六)原子类与CAS(了解即可)
  9. php 字符串转驼峰,zhouqq - PHP 蛇形命名法(snake case)和驼峰命名法(camel case) 相互转换...
  10. 克隆卡设备_SD Clone for mac(SD卡克隆备份软件) v3.2