In My LoginModule
in einer Ansicht Modell Ich bin Dispatching ein Ereignis:Anmeldung zu einer Veranstaltung in einem anderen Modul in Prism
void LoginUpdate(object sender, EventArgs e)
{
_eventAggregator.GetEvent<LoginStatusEvent>().Publish(_status);
}
Im EventModule
:
public class LoginStatusEvent : PubSubEvent<LoginStatus>
{
}
Dann ist ich versuchen, es in einem anderen Modul zu abonnieren:
public class EventModule : IModule
{
IRegionManager _regionManager;
IEventAggregator _eventAggregator;
private SubscriptionToken subscriptionToken;
private bool isLoggedIn { get; set; }
public EventModule(IEventAggregator eventAggregator, IRegionManager regionManager)
{
_regionManager = regionManager;
_eventAggregator = eventAggregator;
LoginEventsListener();
}
public void Initialize()
{
}
public void LoginEventsListener()
{
LoginStatusEvent loginStatusEvent = _eventAggregator.GetEvent<LoginStatusEvent>();
if (subscriptionToken != null)
{
loginStatusEvent.Unsubscribe(subscriptionToken);
}
subscriptionToken = loginStatusEvent.Subscribe(LoginStatusEventHandler, ThreadOption.UIThread, false);
}
public void LoginStatusEventHandler(LoginStatus loginStatus)
{
Trace.WriteLine(">> Got it!!");
}
}
jedoch die LoginStatusEventHandler
wird nie gefeuert und ich bekomme keine Fehler.
Wo definieren Sie die Veranstaltung? Sowohl Publisher als auch Abonnent müssen den gleichen Typ referenzieren. – Haukinger
Das Ereignis wird im 'EventModule' definiert, im' LoginModule' abgefeuert und ich versuche, es im 'EventModule' zu abonnieren – keeg
Hat es mit der 'True'-Flagge in' Subscribe'-Methode funktioniert? – galakt