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 操作无需使用。

相关推荐
小二·16 小时前
微服务架构设计与实践
微服务·架构·wpf
暖馒17 小时前
WPF-Prism学习入门步骤记录
学习·wpf
baivfhpwxf202318 小时前
雷赛(Leadshine)EtherCAT 数字 I/O 模块(如 EMC-E5064-8)的状态指示灯(I/O 状态)说明
c#·wpf
故渊at2 天前
第二板块:Android 四大组件标准化学理 | 第十二篇:四大组件全景总结与系统服务(System Server)架构
android·架构·wpf·四大组件·system service
伶俜662 天前
# [特殊字符] 零基础学 ArkUI 数据持久化(专题三):5 种存储方案深度对比
学习·华为·wpf·harmonyos
IT策士2 天前
Redis 从入门到精通:数据结构String 与键管理
数据结构·redis·wpf
AC赳赳老秦2 天前
技术文章素材收集自动化:用 OpenClaw 自动爬取行业资讯、技术热点、优质文章
运维·开发语言·python·自动化·wpf·deepseek·openclaw
加号32 天前
【WPF】 Storyboard 故事板动画设计深度解析
wpf
xiaoshuaishuai82 天前
C# Avalonia 依赖属性与WPF的区别
开发语言·c#·wpf
大G的笔记本2 天前
生产级 Spring Boot 网关简单实现方案
wpf