ClassAの以下のコードを使用して、プリズムイベントをサブスクライブおよびサブスクライブ解除しています。私が抱えている問題は、サブスクライブを解除した後、同じイベントに対して異なるハンドラーレジスターを持つ別の完全に異なるクラス(ClassBなど)が引き続き呼び出されることです。どうしてこれなの?
トークンを使用したサブスクライブ解除と、登録時に使用したメソッドデリゲートの両方を試しましたが、どちらも役に立ちませんでした。
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);