在我LoginModule
在一個視圖模型我分派事件:訂閱的事件在不同的模塊中的棱鏡
void LoginUpdate(object sender, EventArgs e)
{
_eventAggregator.GetEvent<LoginStatusEvent>().Publish(_status);
}
在EventModule
:
public class LoginStatusEvent : PubSubEvent<LoginStatus>
{
}
然後我試圖訂閱它在不同的模塊:
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!!");
}
}
但是,LoginStatusEventHandler
永遠不會被解僱,我也沒有收到任何錯誤。
你在哪裏定義事件?發佈者和訂閱者都需要引用完全相同的類型。 – Haukinger
事件在'EventModule'中定義,在'LoginModule'中觸發,我試圖在'EventModule'中訂閱它 – keeg
它是否與'訂閱'方法中的'真正'標誌一起工作? – galakt