Как получить доступ к просмотру списка в MainWindow.xaml.cs из класса обработчика подписчика NServiceBus - PullRequest
0 голосов
/ 04 марта 2012

Я хотел бы опубликовать мои сообщения подписки NServiceBus, полученные из класса EventHandler, в ListView.ListView находится внутри MainWindow.xaml приложения WPF.

Вот мой код обработчика событий подписки NServiceBus.Примечание. Я хотел бы опубликовать сообщение о событии в элементе управления ListView в MainWindow.xaml.Есть идеи?

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"); 
   }
}

1 Ответ

1 голос
/ 05 марта 2012

Из вашего обработчика сообщений NSB вы можете запустить событие, которое было прикреплено из окна.В зависимости от того, как вы управляете потоками, помните об обновлении элементов пользовательского интерфейса из потоков, отличных от потока пользовательского интерфейса.Проверьте эту статью в MSDN для событий в WPF.

...