我想将从EventHandler类派生的NServiceBus subscripiton消息发布到ListView。 ListView位于WPF应用程序的MainWindow.xaml中。
这是我的NServiceBus订阅事件处理程序代码。注意:我想将事件消息发布到MainWindow.xaml中的ListView控件。有什么想法吗?
namespace EventPublisher.SubscriberDemoWPF
{
public class PublishTrackEventHandler : IHandleMessages<PublishTrackEvent>
{
public void Handle(PublishTrackEvent message)
{
Trace.TraceInformation(message.GetType().Name);
//Need to post event message to ListView control in MainWindow.xaml UI;
}
}
}
这是我的MainWindow.xaml代码,它与我的事件处理程序代码位于相同的命名空间中:
<Window x:Class="EventPublisher.SubscriberDemoWPF.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<ListView Height="260" HorizontalAlignment="Left" Margin="12,12,0,0" Name="lstEvents" VerticalAlignment="Top" Width="479" />
</Grid>
</Window>
这是MainWindow.xaml.cs代码(典型):
namespace EventPublisher.SubscriberDemoWPF
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
//Would normally use listview.items.add("messages");
}
}
答案 0 :(得分:1)
从NSB消息处理程序中,您可以触发已从Window附加到的事件。根据您管理线程的方式,请注意从UI线程以外的线程更新UI元素。在MSDN中查看this article以查找WPF中的事件。