
[英]MessagingCenter Unsubscribe not working in xamarin forms when using between viewmodels
[英]How to Unsubscribe MessagingCenter if user press hardware back button in xamarin forms?
在按钮单击事件中,我订阅了消息传递中心
bool isDataReceived = false;
MessagingCenter.Subscribe<Dimention>(this, "Print", (sender) =>
{
isDataReceived = true;
PopulateData(sender);
if (isDataReceived)
{
MessagingCenter.Unsubscribe<Dimention>(this, "Print");
}
});
我正在从弹出窗口发送数据
MessagingCenter.Send<Dimention>(data, "Print");
但是,当用户按下硬件后退按钮而不发送值时,如何退订消息传递中心。
您可以覆盖BackButton事件
protected override bool OnBackButtonPressed()
{
base.OnBackButtonPressed();
MessagingCenter.Unsubscribe<Dimention>(this, "Print");
return false;
}
您还可以通过将代码添加到OnDisappearing方法中来确保退订消息传递中心:
protected override void OnDisappearing()
{
base.OnDisappearing();
MessagingCenter.Unsubscribe<Dimention>(this, "Print");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.