我在Prism工作,其中CallerMember
属性与我的代码不兼容。我有一个Close
方法,想知道Close
方法的调用方式。通常,使用CallerMember
属性标记的memberName参数应该接收调用方法名称。但订阅和取消订阅代码显示,此eventAggregator有一些无效的参数。任何帮助都会非常感激。
private void Close(bool isOKCommand,[CallerMemberName] string memberName = "")
{
this.eventAggregator.GetEvent<ShowWarningMessageEvent>().Unsubscribe(this.Close);
if (isOKCommand)
{
//Doing some operations;
}
}
答案 0 :(得分:0)
您调用和使用Unsubscribe
EventAggregator
方法的方式可能存在问题,这是原因您获得Invalid Arguments
例外。
取消订阅Prism事件需要订阅令牌 您通过Subscribe方法或回调委托返回 订阅方法。有关详细信息,请参阅MSDN
SubscriptionToken subscriptionToken = this.eventAggregator.GetEvent<ShowWarningMessageEvent>().Subscribe(<YourSubscribeMethod>);
this.eventAggregator.GetEvent<ShowWarningMessageEvent>().Unsubscribe(subscriptionToken);