WPF 操作之Dispatcher--- 只在多线程更新 UI 时使用。

在 WPF 中,为 Button 触发动作有三种常见写法:

  1. Click 事件处理

    在 XAML 中指定 Click="Button_Click",在后台代码中实现对应方法:

    复制代码
    private void Button_Click(object sender, RoutedEventArgs e)
    {
        MessageBox.Show("操作成功");
    }
  2. Command 绑定(推荐用于 MVVM)

    在 ViewModel 中定义 ICommand,XAML 中绑定:

    复制代码
    <Button Content="点击" Command="{Binding MyCommand}" />
    
    public ICommand MyCommand => new RelayCommand(() => MessageBox.Show("操作成功"));
  3. 动态订阅事件 + Dispatcher(用于特殊场景)

    在代码中动态添加 Click 事件,并用 Dispatcher 确保 UI 更新在线程安全环境下执行(通常仅在非 UI 线程修改界面时需要):

    复制代码
    Button1.Click += (sender, e) => MessageBox.Show("操作成功");
    
    // 若从后台线程更新 UI 才需 Dispatcher
    Button1.Dispatcher.Invoke(() => Button1.Content = "nihao lihuanying");

注意:Dispatcher 不是触发动作的方式,而是线程调度工具;日常 UI 操作无需使用。

相关推荐
小羊没烦恼!1 天前
分布式事务 | 使用DTM 的Saga 模式
java·linux·运维·数据库·wpf
samble2 天前
从零搭建半导体设备上位机(二):Prism + DryIoc,五个工程与区域导航怎么串起来
wpf·prism·dryioc
一条闲鱼_mytube2 天前
分布式 ID 生成方案:雪花算法与号段模式
分布式·算法·wpf
她说彩礼65万2 天前
WPF Prism代码走读
wpf
光泽雨5 天前
动画生命周期
c#·wpf
nap1177 天前
WPF 中常用的 LINQ 语句
wpf
做个文艺程序员10 天前
MQ第12篇:AI原生消息架构演进:从MQ到事件驱动的全链路设计
架构·消息队列·wpf·事件驱动架构·ai-native·cqrs
donk131411 天前
React Native for OpenHarmony 实战:三方库 react-native-circular-action-menu 的鸿蒙化适配指南
javascript·分布式·react native·react.js·wpf·harmonyos
donk131412 天前
React Native for OpenHarmony 实战:三方库 react-native-step-indicator 的鸿蒙化适配指南
分布式·react native·react.js·wpf·harmonyos