#344 – 通过CanExecute控制按钮是可用(The CommandBinding CanExecute Determines Whether a Button is Enabled)
当你将按钮的Command 属性和一个CommandBinding 实例绑定,同是也设置了Executed 和CanExecute 的处理函数,那么按钮控件将会根据CanExecute 方法的代码自动改变自己的可用性。
假设我们创建了两个按钮,给他们分别绑定 open和close命令。
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center"><Button Content="Open" Command="ApplicationCommands.Open"VerticalAlignment="Center" Padding="10,5" Margin="5"/><Button Content="Close" Command="ApplicationCommands.Close"VerticalAlignment="Center" Padding="10,5" Margin="5"/>
</StackPanel>
并为他们创建CommandBinding 实例和设置处理函数。
public MainWindow()
{this.InitializeComponent();CommandBindings.Add(new CommandBinding(ApplicationCommands.Open, Open_Executed, Open_CanExecute));CommandBindings.Add(new CommandBinding(ApplicationCommands.Close, Close_Executed, Close_CanExecute));
}private bool isOpen = false;public void Open_Executed(object sender, ExecutedRoutedEventArgs e)
{MessageBox.Show("Open");isOpen = true;
}public void Open_CanExecute(object sender, CanExecuteRoutedEventArgs e)
{e.CanExecute = !isOpen;
}public void Close_Executed(object sender, ExecutedRoutedEventArgs e)
{MessageBox.Show("Close");isOpen = false;
}public void Close_CanExecute(object sender, CanExecuteRoutedEventArgs e)
{e.CanExecute = isOpen;
}
上面例子,在CanExecute中将isOpen的值赋给e.CanExecute, 按钮将会根据 isOpen的值自动变为可用或者不可用。
原文地址:https://wpf.2000things.com/2011/07/18/344-the-commandbinding-canexecute-event-determines-whether-a-button-is-enabled/
#344 – 通过CanExecute控制按钮是可用(The CommandBinding CanExecute Determines Whether a Button is Enabled)相关推荐
- PHP设置按钮不可用,css怎么控制按钮不可用,button按钮css样式
css怎么控制按钮不可用CSS怎么控制按钮不可用,方法:添加"pointer-event 3360 none:"按钮元素样式,以使按钮元素永远不会成为鼠标事件的目标,并使其单击事件 ...
- WinForm容器内控件批量效验是否允许为空?设置是否只读?设置是否可用等方法分享...
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/chinahuyong/article/details/47395633 WinForm容器内控件批量 ...
- JQuer实战第一讲:验证用户名是否可用
使用JQuery好久了,但每次都是现用现查,或者找些相关的插件.从来没系统的学习过.本身对JavaScript就有一种莫明的惧怕,虽然每次都认真的看,但有些东西总是记不住.似乎大脑就不记这些相关的东西 ...
- WinForm容器内控件批量效验是否允许为空?设置是否只读?设置是否可用等方法分享
WinForm容器内控件批量效验是否允许为空?设置是否只读?设置是否可用等方法分享 在WinForm程序中,我们有时需要对某容器内的所有控件做批量操作.如批量判断是否允许为空?批量设置为只读.批量设置 ...
- WPF学习之深入浅出话命令
WPF为我们准备了完善的命令系统,你可能会问:"有了路由事件为什么还需要命令系统呢?".事件的作用是发布.传播一些消息,消息传达到了接收者,事件的指令也就算完成了,至于如何响应事件 ...
- WPF(三) WPF 命令
1.WPF 命令的概念 WPF 区别于 WinForm,在继承WinForm熟悉的事件和委托技术之上,还提供了一套完善的命令(Command)系统.简单来说,命令是一个任务的完整封装,例如保存,复 ...
- WPF学习第九集-深入浅出话命令
WPF为我们准备了完善的命令系统,你可能会问:"有了路由事件为什么还需要命令系统呢?".事件的作用是发布.传播一些消息,消息传达到了接收者,事件的指令也就算完成了,至于如何响应事件 ...
- CAD二次开发 添加按钮Ribbon
这篇文章是教大家怎样子创建自己的Ribbon按钮界面(如下图),以下示例代码在CAD2020中运行实现. 背景 创建一个属于自己的Ribbon按钮(如下图) 理解Ribbon.Panel.Tab的关系 ...
- Reactive Extensions入门(5):ReactiveUI MVVM框架
从前面几篇文章可以了解到,Rx作为LINQ的一种扩展,极大地简化了异步编程.但Rx的用法不仅如此,由于其可高的扩展性,在其他很多方面也有所应用. 在前面例子中,我们使用代码和UI界面上的元素打交道,这 ...
- openmv串口数据 串口助手_Qt小项目之串口助手控制LED
前言 最近刚学了一点Qt开发上位机,尝试着做个小软件练练手.查找了很多资料,做了一个简单的串口助手,可以实现串口基本发送和接收功能,支持中文显示,还可以控制STM32开发板上的两个LED. 1.软件界 ...
最新文章
- activemq启动异常
- bootstrap评分插件 Bootstrap Star Rating Examples
- mysql 修改字段长度
- 【汇编语言与计算机系统结构笔记16】子程序设计:子程序的嵌套与递归,多个模块之间的参数传送
- 数据库树形结构,EasyUI Tree 树
- Silverlight 游戏开发小技巧:扇形排列元素
- NullPointerException空指针异常的理解
- 幂次方计算_收藏!机考计算器用法汇总,算题速度提高几倍
- input输入身份证验证
- Premiere 视频基本调色
- 设置idea的ant工具的代理
- 基于 AndroidR QCOM IMS CALL 通话流程解析
- LTP(Linux Test Project)学习(二)——LTP下载编译执行
- 动环监控设备维护与故障处理,动环监控系统调试
- Word目录排版,页码格式转换
- ttl低电平接大电阻_电路中上拉、下拉电阻的作用及原理
- 帕斯卡公式+Lucas定理______DP?( hdu 3944 )
- 含论文+辩论PPT+源码等]微信小程序ssm社区心理健康服务平台+后台管理系统
- 羊吃人,把人们赶走,
- 提取Exif信息中GPS经纬度,转化为double方法