Prism Sample 14-UsingEventAggregator
2021/6/12 10:54:41
本文主要是介绍Prism Sample 14-UsingEventAggregator,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
这次是事件聚合器的应用。
事件聚合器应用第一步:定义一个事件聚合器,应该是一个可访问的公共区域,例14为它做了一个core的项目。代码很简单:
using Prism.Events; namespace UsingEventAggregator.Core { public class MessageSentEvent : PubSubEvent<string> { } }
一个继承了PubSubEvent<T>的空类,T的内容可以很多……
ModuleA定义了一个消息发送界面。
<StackPanel> <TextBox Text="{Binding Message}" Margin="5"/> <Button Command="{Binding SendMessageCommand}" Content="Send Message" Margin="5"/> </StackPanel>
对应VM中定义了发送命令
1 public class MessageViewModel : BindableBase 2 { 3 IEventAggregator _ea; 4 5 private string _message = "Message to Send"; 6 public string Message 7 { 8 get { return _message; } 9 set { SetProperty(ref _message, value); } 10 } 11 12 public DelegateCommand SendMessageCommand { get; private set; } 13 14 public MessageViewModel(IEventAggregator ea) 15 { 16 _ea = ea; 17 SendMessageCommand = new DelegateCommand(SendMessage); 18 } 19 20 private void SendMessage() 21 { 22 _ea.GetEvent<MessageSentEvent>().Publish(Message); 23 } 24 }
首先注入事件聚合器,然后在点击按钮的时候,让聚合器发布文本框内的内容。
然后看一下ModuleB怎样接收消息
界面:
<Grid> <ListBox ItemsSource="{Binding Messages}" /> </Grid>
一个列表框。
接收消息的逻辑
public class MessageListViewModel : BindableBase { readonly IEventAggregator _ea; private ObservableCollection<string> _messages; public ObservableCollection<string> Messages { get => _messages; set => SetProperty(ref _messages, value); } public MessageListViewModel(IEventAggregator ea) { _ea = ea; Messages = new ObservableCollection<string>(); _ea.GetEvent<MessageSentEvent>().Subscribe(MessageReceived); } private void MessageReceived(string message) { Messages.Add(message); } }
仍然是注入聚合器,然后在收到消息后,将消息加入到队列。
这篇关于Prism Sample 14-UsingEventAggregator的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南