WPF Command 案例
阿新 • • 發佈:2019-02-14
實現這一一個需求:定義一個命令,使用Button來發送命令,當命令送達TextBox時TextBox會被清空,若TextBox中沒有文字則命令不可被髮送。
前端:
<StackPanel Name="stackPanel">
<Button Content="Send command." Name="btnCmd"/>
<TextBox Height="100" Name="tbxCmd"/>
</StackPanel>
後臺:
public partial class Window1 : Window { private RoutedCommand rcmd = new RoutedCommand("Clear", typeof(Window1)); public Window1() { InitializeComponent(); InitCmd(); } private void InitCmd() { btnCmd.Command = rcmd; btnCmd.CommandTarget = tbxCmd; rcmd.InputGestures.Add(new KeyGesture(Key.C, ModifierKeys.Alt)); CommandBinding cb = new CommandBinding(); cb.Executed += new ExecutedRoutedEventHandler(cb_Execute); cb.CanExecute += new CanExecuteRoutedEventHandler(cb_CanExecute); cb.Command = this.rcmd; this.stackPanel.CommandBindings.Add(cb);//把命令關聯安置在外圍控制元件上。 } public void cb_Execute(object sender, ExecutedRoutedEventArgs e) { tbxCmd.Clear(); e.Handled = true; } public void cb_CanExecute(object sender, CanExecuteRoutedEventArgs e) { e.CanExecute = string.IsNullOrEmpty(tbxCmd.Text) ? false : true; e.Handled = true; } }