WPF使用RoutedCommand自己定义命令
主要代码例如以下所看到的:
/// <summary>
/// 声明并定义命令。
/// </summary>
RoutedCommand ClearCommand = new RoutedCommand("Clear", typeof(MainWindow)); /// <summary>
/// 初始化命令。崔有来 2014-7-30 06:23:10
/// </summary>
void InitializeCommand()
{
// 为命令设置快捷键。
this.ClearCommand.InputGestures.Add(new KeyGesture(Key.C, ModifierKeys.Alt)); // 将命令赋给命令源。 this.Button1.Command = this.ClearCommand; // 指定命令目标。
this.Button1.CommandTarget = this.TextBoxA; // 创建命令关联并安置在外围控件上。
CommandBinding cb = new CommandBinding();
cb.Command = this.ClearCommand;
cb.CanExecute += new CanExecuteRoutedEventHandler(cb_CanExecute);
cb.Executed += new ExecutedRoutedEventHandler(cb_Executed);
this.StackPanel1.CommandBindings.Add(cb);
} /// <summary>
/// 当命令送达目标后运行该方法。崔有来 2014-7-30 06:27:16
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void cb_Executed(object sender, ExecutedRoutedEventArgs e)
{
this.TextBoxA.Clear();
e.Handled = true;
} /// <summary>
/// 当探測命令是否可运行时调用该方法。崔有来 2014-7-30 06:26:20
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void cb_CanExecute(object sender, CanExecuteRoutedEventArgs e)
{
if (string.IsNullOrEmpty(this.TextBoxA.Text) == true) e.CanExecute = false;
else e.CanExecute = true; e.Handled = true;
}
WPF使用RoutedCommand自己定义命令的更多相关文章
- WPF使用RoutedCommand自定义命令
主要代码如下所示: /// <summary> /// 声明并定义命令. /// </summary> RoutedCommand ClearCommand = new Rou ...
- WPF自己定义命令Command
一.自己定义命令 自己定义命令必需要实现ICommand接口.例如以下代码所看到的: /// <summary> /// 自己定义的清除命令. 光脚丫思考 2014-7-31 06:51: ...
- WPF学习之深入浅出话命令
WPF为我们准备了完善的命令系统,你可能会问:"有了路由事件为什么还需要命令系统呢?".事件的作用是发布.传播一些消息,消息传达到了接收者,事件的指令也就算完成了,至于如何响应事件 ...
- WPF学习(7)命令
在上一篇中,我们学习了WPF的路由事件,而在本节将学习一个更为抽象且松耦合的事件版本,即命令.最明显的区别是,事件是与用户动作相关联的,而命令是那些与用户界面想分离的动作,例如我们最熟悉的剪切(Cut ...
- WPF学习笔记四之命令
1.概念 对于程序来说,命令就是一个个任务,例如保存,复制,剪切这些操作都可以理解为一个个命令.即当我们点击一个复杂按钮时,此时就相当于发出了一个复制的命令,即告诉文本框执行一个复杂选中内容的操作,然 ...
- c++宏定义命令
在程序开始以#开头的命令,他们是预编译命令.有三类预编译命令:宏定义命令.文件包含命令.条件编译命令:今天聊聊宏定义: 宏定义命令将一个标识符定义为一个字符串,源程序中的该标识符均以指定的字符串来代替 ...
- makefile详解 嵌套执行make,定义命令包
嵌套执行make 在一些大的工程中,我们会把我们不同模块或是不同功能的源文件放在不同的目录中,我们可以在每个目录中都书写一个该目录的Makefile,这有利于让我们的Makefile变得更加地简洁,而 ...
- 【WPF】ContentControl Style定义与使用出现问题后 -- 引发的思考
一.背景 使用WPF的朋友,大家都很喜欢采用定义控件的公共样式,以便整个框架对该资源的使用,好处就是可以达到代码复用.系统风格统一等: 1. 定义资源 <Style TargetT ...
- WPF 在事件中绑定命令(不可以在模版中绑定命令)
其实这也不属于MVVMLight系列中的东东了,没兴趣的朋友可以跳过这篇文章,本文主要介绍如何在WPF中实现将命令绑定到事件中. 上一篇中我们介绍了MVVMLight中的命令的用法,那么仅仅知道命令是 ...
随机推荐
- 【APP问题定位(一)】夜神模拟器安装及问题
本文较少下夜神模拟器的使用,包括了夜神安装,APK安装,开发者选项打开. 安装夜神模拟器 到 夜神模拟器 网站自行下载安装文件,双击exe文件安装,选择"自定义安装" ...
- 网站出现service unavailable的解决方法
特别提示:本文的教程仅适合采用windows服务器的IIS组件上操作,service unavailable是许多网站会经常遇到的问题,希望对大家有用. 昨天一小段时间网站出现了service una ...
- Gitpage + hexo(3.0以上)搭建博客
大半天,一边折腾,一边查找各种文档,写出的这篇文档,不知道有没有把程序表示得足够简明,有不足之处望指明. 前提:已安装好nodeJS和git. 桌面右击进入gitbash,输入npm install ...
- HTTP-FLV直播初探
目前几种视频流的简单对比: 协议 httpflv rtmp hls dash 传输方式 http流 tcp流 http http 视频封装格式 flv flv tag Ts文件 Mp4 3gp web ...
- RabbitMQ之Helloworld
RabbitMQ介绍 RabbitMQ是一个消息代理.它的核心原理非常简单:接收和发送消息. 专有名词 生产(Producing)意思就是发送.发送消息的程序就是一个生产者(producer).我们一 ...
- WPF中DataGrid垂直滚动条滚动后导致每行CheckBox选择错乱
问题: WPF的DataGrid中出现选取或者多选以及单选的时候,出现滚动条的时候,如果发生了滚动,默认情况下就会出现已经选择的CheckBox错乱.这样的原因何在? 解决方案: 经过查阅资料,了解到 ...
- 怎么设置按钮的disabled属性
首先我们要知道怎么去设置 两种方法设置disabled属性 $('#area').attr("disabled",true); $('#area').attr("disa ...
- 3)C语言数组(C自考学习)
一维数组 一维数组中的元素是排列成一行的,当需要存放一行或一列数据时常用一维数组.一维数组的元素常用"数组名[下标]"来表示,其中,下表是从0开始的.例如:a[0]="h ...
- Vue之彻底理解自定义组件的v-model
最近在学习vue,今天看到自定义事件的表单输入组件,纠结了一会会然后恍然大悟...官方教程写得不是很详细,所以我决定总结一下. v-model语法糖 v-model实现了表单输入的双向绑定,我们一般是 ...
- P2757 导弹的召唤(数据加强)
传送门 LIS的O(nlgn)模板题.加强"导弹拦截" #include <cstdio> #include <cstring> #include < ...