在 WPF 中,为 Button 触发动作有三种常见写法:
-
Click 事件处理
在 XAML 中指定
Click="Button_Click",在后台代码中实现对应方法:private void Button_Click(object sender, RoutedEventArgs e) { MessageBox.Show("操作成功"); } -
Command 绑定(推荐用于 MVVM)
在 ViewModel 中定义
ICommand,XAML 中绑定:<Button Content="点击" Command="{Binding MyCommand}" /> public ICommand MyCommand => new RelayCommand(() => MessageBox.Show("操作成功")); -
动态订阅事件 + Dispatcher(用于特殊场景)
在代码中动态添加 Click 事件,并用 Dispatcher 确保 UI 更新在线程安全环境下执行(通常仅在非 UI 线程修改界面时需要):
Button1.Click += (sender, e) => MessageBox.Show("操作成功"); // 若从后台线程更新 UI 才需 Dispatcher Button1.Dispatcher.Invoke(() => Button1.Content = "nihao lihuanying");
注意:Dispatcher 不是触发动作的方式,而是线程调度工具;日常 UI 操作无需使用。