我使用以下ClassA中的代码订阅和取消订阅prism事件.我遇到的问题是在我取消订阅之后,另一个完全不同的类,比如ClassB,使用不同的处理程序注册同一事件,仍然会调用ClassA处理程序.为什么是这样?
我已尝试使用令牌取消订阅以及注册时使用的方法委托,两者都无济于事.
SubscriptionToken _subscriptionToken;
//register subscription + handler
var pevent = GetEventAggregator().GetEvent<PriceSubscriptionEvent>();
_subscriptionToken = pevent.Subscribe(r =>
{
DataHandler(r);
return;
}, ThreadOption.BackgroundThread, false, null);
//Unsubscribe
var pevent = GetEventAggregator().GetEvent<PriceSubscriptionEvent>();
pevent.Unsubscribe(_subscriptionToken);
Run Code Online (Sandbox Code Playgroud)
我不确定这里的订阅令牌代码。
但是,我们可以订阅和取消订阅事件,如下所示:
evenaggregator.GetEvent<EventName>().Subscribe(eventhandler);
Run Code Online (Sandbox Code Playgroud)
和
evenaggregator.GetEvent<EventName>().Unsubscribe(eventhandler);
Run Code Online (Sandbox Code Playgroud)
这个对我有用。
| 归档时间: |
|
| 查看次数: |
2291 次 |
| 最近记录: |