01.消息通讯

MessageBus 是一个轻量级的事件总线(Event Bus),用于实现组件之间的解耦通信。它允许不同组件通过发布 / 订阅模式发送和接收消息,而无需直接引用彼此,特别适合在 MVVM 架构中实现 ViewModel 之间、ViewModel 与 View 之间的通信(与MVVMlight中消息类似)

  • 发布消息:MessageBus.Current.SendMessage(T message, string contract = null)
    • T:消息类型。
    • message:要发送的消息实例。
    • contract:可选的契约字符串,用于区分同一类型的不同消息(类似 “频道”)。
  • 订阅消息:MessageBus.Current.Listen(string contract = null)
    返回 IObservable,通过订阅该 observable 接收消息

//订阅
     MessageBus.Current.Listen<object>("TitleChanged")
         .Subscribe(obj =>
         {
             if (obj is Button btn)
             {
                 btn.Content = DateTime.Now.ToString("HHmmss");
             }
         });
//发送
  private void Button_Click_1(object sender, RoutedEventArgs e)
 {
     MessageBus.Current.SendMessage(sender, "TitleChanged");
}
posted @ 2025-10-31 17:29  [在河之洲]  阅读(2)  评论(0)    收藏  举报