zoukankan      html  css  js  c++  java
  • WPF(命令)

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    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.Navigation;
    using System.Windows.Shapes;
    
    namespace WpfCommand
    {
        /// <summary>
        /// MainWindow.xaml 的交互逻辑
        /// </summary>
        public partial class MainWindow : Window
        {
            public MainWindow()
            {
                InitializeComponent();
                InitializeCommand();
            }
    
            // 声明命令
            private RoutedCommand clearCmd = new RoutedCommand("Clear", typeof(MainWindow));
    
    
            private void InitializeCommand()
            {
                // 命令源
                this.btn.Command = clearCmd;
                this.clearCmd.InputGestures.Add(new KeyGesture(Key.C,ModifierKeys.Alt));
    
                // 命令目标
                this.btn.CommandTarget = this.txt;
    
                // 命令绑定
                CommandBinding cb = new CommandBinding();
                cb.Command = this.clearCmd;
                cb.CanExecute += new CanExecuteRoutedEventHandler(cb_CanExecute);
                cb.Executed += new ExecutedRoutedEventHandler(cb_Execute);
    
                // 安置到外围控件上
                this.stackpanel.CommandBindings.Add(cb);
            }
    
            private void cb_CanExecute(object sender, CanExecuteRoutedEventArgs args)
            {
                if (string.IsNullOrEmpty(this.txt.Text))
                {
                    args.CanExecute = false;
                }
                else
                {
                    args.CanExecute = true;
                }
    
                args.Handled = true;
            }
    
            private void cb_Execute(object sender, ExecutedRoutedEventArgs args)
            {
                this.txt.Clear();
                args.Handled = true;
            }
        }
    }
    

    -----------------------------------------------------------

    优化代码段

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    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.Navigation;
    using System.Windows.Shapes;
    
    namespace WpfCommand
    {
        /// <summary>
        /// MainWindow.xaml 的交互逻辑
        /// </summary>
        public partial class MainWindow : Window
        {
            public MainWindow()
            {
                InitializeComponent();
                InitializeCommand();
            }
    
            // 声明命令
            private RoutedCommand clearCmd = new RoutedCommand("Clear", typeof(MainWindow));
    
    
            private void InitializeCommand()
            {
                // 命令源
                this.btn.Command = clearCmd;
                this.clearCmd.InputGestures.Add(new KeyGesture(Key.C, ModifierKeys.Alt));
    
                //// 命令目标
                //this.btn.CommandTarget = this.txt;
    
                //// 命令绑定
                //CommandBinding cb = new CommandBinding();
                //cb.Command = this.clearCmd;
                //cb.CanExecute += new CanExecuteRoutedEventHandler(cb_CanExecute);
                //cb.Executed += new ExecutedRoutedEventHandler(cb_Execute);
    
                // 安置到外围控件上
                this.CommandBindings.Add(new CommandBinding(clearCmd,cb_Execute,cb_CanExecute));
            }
    
            private void cb_CanExecute(object sender, CanExecuteRoutedEventArgs args)
            {
                if (string.IsNullOrEmpty(this.txt.Text))
                {
                    args.CanExecute = false;
                }
                else
                {
                    args.CanExecute = true;
                }
    
                args.Handled = true;
            }
    
            private void cb_Execute(object sender, ExecutedRoutedEventArgs args)
            {
                this.txt.Clear();
                args.Handled = true;
            }
        }
    }
    


  • 相关阅读:
    基本的数据库操作类
    GridView 导出Excle
    VS2005 调试时断点无效的小问题
    TSQL日期相关
    Data Access Application Block 利用DataSet 操作DB
    vs2005 字体和颜色加载包失败,无法修改的问题
    GridView 编辑和删除的实现
    operamasksui之omGrid简单使用
    ANT简明教程
    ANT从入门到精通
  • 原文地址:https://www.cnblogs.com/wjchang/p/3671517.html
Copyright © 2011-2022 走看看