WPF 中的 Command 命令

<Window x:Class="CommandDemo.MainWindow"

        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

        xmlns:local="clr-namespace:CommandDemo"

        mc:Ignorable="d"

        Title="MainWindow" Height="450" Width="800">

    <Grid>

        <StackPanel x:Name="stackpanel" >

            <Button x:Name="button1"  Content="send command"></Button>

            <TextBox x:Name="textboxA" Margin="5,0" Height="100"></TextBox>

            <TextBox x:Name="textboxB" Margin="5,0" Height="100"></TextBox>

        </StackPanel>

    </Grid>

</Window>

C# 代码

 public partial class MainWindow : Window

    {

        public MainWindow()

        {

            InitializeComponent();

            this.InitializeCommand();

        }

        private RoutedCommand ClearCmd = new RoutedCommand("clear", typeof(MainWindow));

        private void InitializeCommand()

        {

            this.ClearCmd.InputGestures.Add(new KeyGesture(Key.C, ModifierKeys.Alt));

            this.button1.Command = this.ClearCmd;

            this.button1.CommandTarget = this.textboxA;

            CommandBinding cb = new CommandBinding();

            cb.Command = this.ClearCmd;

            cb.CanExecute += new CanExecuteRoutedEventHandler(cb_CanExecute);

            cb.Executed += new ExecutedRoutedEventHandler(cb_Executed);

            this.stackpanel.CommandBindings.Add(cb);

        }

        private void cb_Executed(object sender, ExecutedRoutedEventArgs e)

        {

            this.textboxA.Clear();

        }

        private void cb_CanExecute(object sender, CanExecuteRoutedEventArgs e)

        {

            e.CanExecute = true;

        }

    }

原文地址:https://www.cnblogs.com/bruce1992/p/14532108.html