(WPF应用开发项目教程)4.3WPF命令.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
项目四 WPF命令—实现窗体的清除功能 讲师 刘振东 本章导读: 本章的主要内容是WPF的命令的相关知识。然后通过项目“实现窗体的清除功能程序”为导向,三个任务(创建使用简单命令的程序、创建使用复杂命令的程序和使用自定义命令的程序)为驱动,学习有关WPF命令的知识,本项目着力使学习者对WPF的命令有一定认识,初步掌握自定义命令的用法。 项目四 WPF命令—实现窗体的清除功能 ——任务三 创建使用自定义命令的程序 实现的是点击浅蓝色控件时,弹出对话框,显示文本框里面的内容。运行效果如图。 一、任务描述: 二、知识准备: 1 自定义命令 一般情况下,程序中使用与逻辑无关的RoutedCommand就足够了,但为了使程序的结构更简洁,我们常常要定义自己的命令。 WPF的命令式实现了Icommand接口的类。Icommand只包含两个方法和一个事件,先看一下ICommand接口的原型: 二、知识准备: 1、自定义命令 event EventHandler CanExecuteChanged; bool CanExecute(object parameter); void Execute(object parameter); 二、知识准备: 1、自定义命令 其中第一个事件为,当命令可执行状态发生改变时,可以激化此事件来通知其他对象。另外两个方法在上面已经用过同名的,在此不做重复说明。 下面开始实现一个自定义直接实现ICommand接口的命令,实现点击源控件,清除目标控件的内容。 从ICommand接口开始,实现一个自定义命令。该自定义命令不再需要CommandBindings来进行命令绑定,在命令里面实现了相关的业务处理,使代码更清晰。 三、任务分析: 从ICommand接口开始,实现一个自定义命令。该自定义命令不再需要CommandBindings来进行命令绑定,在命令里面实现了相关的业务处理,使代码更清晰。 1.新建WPF项目,名称为DefineCommand。右键单击项目,添加类文件,名称为MyCommand。 2.继承ICommand,实现自定义MyCommand。 该命令功能为弹出对话框,显示文本框的内容。这里将命令目标作为Execute的参数。 三、任务实施: 注意,此时需要using System.Windows.Input; 对ICommand进行解析。 三、任务实施: class MyCommand : ICommand { public event EventHandler CanExecuteChanged; public bool CanExecute(object parameter) { throw new System.NotImplementedException(); } 三、任务实施: public void Execute(object parameter) { TextBox txtCmd = parameter as TextBox ; if (cmd != null) { MessageBox.Show(txtCmd.Text); } } } 3. 右键单击项目,新建类文件,名称为MyCommandSource。 创建命令源。 自定义命令需要有命令源来发送他们,通过继承ICommandSource来实现命令源。下面通过控件的OnMouseLeftButtonUp事件来发送命令。 三、任务实施: class MyCommandSource : System.Windows.Controls.TextBlock, ICommandSource { //自定义命令源 } public ICommand Command { get; set; } public object CommandParameter { get; set; } public IInputElement CommandTarget { get; set; } //重写点击处理函数 protected override void OnMouseLeftButtonUp(MouseButtonEventArgs e) {

文档评论(0)

autohhh + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档