MessagingCenter.Subscribe()内に記述された機能は、アプリケーションで複数回前後に移動すると複数回呼び出されます。しかし、購読するたびに、次のようにコンストラクタで同じものを購読解除しますが、それでもうまくいきませんでした。私は6ページ(git)を持っていると私はMessagingCenter.Sendと同じと6ページ目のデータが2ページ目に加入し、メッセージを保存されます保存私のアプリケーションでXamarin form MessagingCenterのサブスクリプションが期待どおりに動作しない
MessagingCenter.Unsubscribe<SubmitPage>(this,"Save");
MessagingCenter.Subscribe<SubmitPage>(this, "Save", (sender) =>
{
DisplayToastOnSuccessfulSubmission();
});
に移動した後、(2ページ目に表示されますそのページ)。
この場合、DisplayToastOnSuccessfulSubmission()は2回呼び出されます(Page2のコンストラクタが2回呼び出されるため)2-> 1-> 2-> 3-> 4-> 5-> 6のようにナビゲートします。
私は、OnAppearingに同じコードを配置しようとしました。 私はOnDisappearで退会できません。私は、保存のためにPage6に達したときまでイベント配線が必要です。
は、サンプルプロジェクトで同じ動作を再現し、ここhttps://github.com/suchithm/MessageCenterSampleApp
Drop box link
を追加し、これを行うための適切な方法は何ですか?
を私は今、解決策を持っていないが、私は問題を参照してくださいと思います。あなたはコンストラクタを呼び出しているので、新しいインスタンスです。 'this'はもう同じインスタンスではありません。つまり、イベントは実際には最初のインスタンスでは購読解除されません。 –
完全に新しいインスタンスであれば、各ナビゲーションでもう1回呼び出す方法 – Suchith
私の推測では、最初のインスタンスは削除されていません。 –