博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WPF命令
阅读量:6849 次
发布时间:2019-06-26

本文共 1492 字,大约阅读时间需要 4 分钟。

命令基本元素及关系

WPF里已经有了路由事件,那为什么还需要命令呢?
因为事件指负责发送消息,对消息如何处理则不管,而命令是有约束力,每个接收者对命令执行统一的行为,比如菜单上的保存,工具栏上的保存都必须是执行同样的保存。
WPF命令必须要实现ICommand接口,以下为ICommand接口结构

using System.ComponentModel;using System.Runtime.CompilerServices;using System.Windows.Markup;namespace System.Windows.Input{    public interface ICommand    {        //摘要:当出现影响是否应执行该命令的更改时发生。        event EventHandler CanExecuteChanged;        //摘要:定义用于确定此命令是否可以在其当前状态下执行的方法。        //参数:此命令使用的数据。 如果此命令不需要传递数据,则该对象可以设置为 null。        //返回结果:如果可以执行此命令,则为 true;否则为 false。        bool CanExecute(object parameter);        //摘要:定义在调用此命令时调用的方法。        //参数:此命令使用的数据。 如果此命令不需要传递数据,则该对象可以设置为 null。        void Execute(object parameter);    }}

ICommand接口实现

using System;using System.Windows.Input;namespace Micro.ViewModel{    public class DelegateCommand : ICommand    {        public Action ExecuteCommand = null;        public Func
CanExecuteCommand = null; public event EventHandler CanExecuteChanged; public bool CanExecute(object parameter) { if (CanExecuteCommand != null) { return this.CanExecuteCommand(parameter); } else { return true; } } public void Execute(object parameter) { if (ExecuteCommand != null) this.ExecuteCommand(parameter); } public void RaiseCanExecuteChanged() { CanExecuteChanged?.Invoke(this, EventArgs.Empty); } }}

 

转载地址:http://lxrul.baihongyu.com/

你可能感兴趣的文章
同步时间
查看>>
去除TFS版本控制信息
查看>>
南海区妇幼保健院HIS数据容灾备份系统项目
查看>>
思科3560交换机端口限速
查看>>
linux网络设备无法启动问题处理
查看>>
生活大爆炸系列之磨望远镜
查看>>
文档:Windows Server 2012 配置Hyper-V复制
查看>>
正则表达式
查看>>
Angular企业级开发(1)-AngularJS简介
查看>>
如何查看自己电脑系统的安装日期-Window上
查看>>
tomcat 连接数设置(转)
查看>>
Windows压缩包安装MySQL
查看>>
13040:All in All
查看>>
动态规划
查看>>
单纯形法
查看>>
21.Spring Boot 使用Java代码创建Bean并注册到Spring中
查看>>
window.location.href的用法
查看>>
C# MVC中直接执行Js
查看>>
mac book下批量替换多个文件中的字符
查看>>
python IO编程-序列化
查看>>