RoutedCommand与业务逻辑无关,业务逻辑是通过CommandBinding来实现

using System;

using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;

namespace Wpf180706
{
    /// <summary>
    /// Interaction logic for Window4.xaml
    /// </summary>
    public partial class Window4 : Window
    {
        public Window4()
        {
            InitializeComponent();
            InitializeCommond();
        }

        private RoutedCommand clearCmd = new RoutedCommand("Clear", typeof(Window));

        private void InitializeCommond()
        {
            this.btn.Command = clearCmd;
            clearCmd.InputGestures.Add(new KeyGesture(Key.C,ModifierKeys.Alt));
            //this.btn.CommandTarget = txt;目标可以指定也可以由WPF根据焦点判断
            CommandBinding cb = new CommandBinding();
            cb.Command = clearCmd;
            cb.Executed += cb_Executed;
            cb.CanExecute += cb_CanExecute;
            this.CommandBindings.Add(cb);

        }

        void cb_CanExecute(object sender, CanExecuteRoutedEventArgs e)
        {
            if (string.IsNullOrEmpty(txt.Text))
            {
                e.CanExecute = false;
            }
            else
            {
                e.CanExecute = true;
            }

        }

        void cb_Executed(object sender, ExecutedRoutedEventArgs e)
        {
            
            txt.Clear();
            e.Handled = true;
        }
    }
}

最新文章

  1. Linux 动态监听进程shell
  2. Effective Java 读书笔记之四 泛型
  3. jquery数组内多维对象
  4. TCP网络拥塞控制
  5. Linux 卸载Oracle 11G
  6. opencv kmeans 图像分割
  7. Android 导入v7包常见错误,以及项目引用v7包错误解决
  8. 记一场与 cookie 的相遇
  9. 20175324 《Java程序设计》第4周学习总结
  10. Redis的数据结构
  11. Build Tool
  12. 【Node.js】安装及使用
  13. 【工具相关】Web-Sublime Text2-注释
  14. Daily Sentence(英语每日一句)
  15. “数学口袋精灵”App的第三个Sprint计划----开发日记(第十一天12.17)
  16. python2和Python3的区别(长期更新)
  17. Elasticsearch5.5.2安装和启动遇到哪些问题
  18. as3 区别中文 英文 数字
  19. C#动态加载/卸载Assembly的解决方案
  20. 小程序 openid 的原始请求和网络请求

热门文章

  1. js进阶正则表达式7点数字字母空格(w d s)(小写表原意,大写表反义)(特殊字符要加反斜杠:var reg22=/\W/g)
  2. 编辑器vim简介
  3. 【Windows Defender Antivirus Service 永久禁用 】
  4. DesignPattern_Java:SingletonPattern
  5. 一个封装比较完整的FTP类——clsFTP
  6. BZOJ 2064 - 状压DP
  7. 【BZOJ 1029】[JSOI2007]建筑抢修
  8. hadoop 3.x 关闭安全模式
  9. C++重载加号运算符实现两个结构体的相加
  10. Java网络编程注意事项1