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");
}
努力到无能为力,拼搏到感动自己

浙公网安备 33010602011771号