试图通过MessagingCenter发送字符串值时,获取以下异常。例外情况发生在PopupPage上。
异常详细信息:
调用的目标引发了exception:>>System.Reflection.TargetInvocationException:异常。-> System.NullReferenceException:对象引用没有设置为对象的实例。在CatholicBrain.Views.BibleOrderGamePage.<.ctor>b__3_0 (CatholicBrain.Model.BibleOrderGameViewModel,System.String答案) 0x00001中,F:\My Projects\Xamarin\catholicbrain-mobile-app\CatholicBrain\CatholicBrain\Views\BibleOrderGamePage.xaml.cs:30 at (包装托管到本地) System.Reflection.RuntimeMethodInfo.InternalInvoke(System.Reflection.RuntimeMethodInfo,对象,object[],System.Exception&) at System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj,System.Reflection.BindingFlags invokeAttr,System.Reflection.Binder binder,System.Object[]参数),D:\a\1\s\Xamarin.Forms.Core\MessagingCenter.cs:94 at Xamarin.Forms.MessagingCenter.InnerSend (System.String message,System.Type senderType,System.Type argType,System.Object发件人)D:\a\1\s\Xamarin.Forms.Core\MessagingCenter.cs:217 at Xamarin.Forms.MessagingCenter.Xamarin.Forms.IMessagingCenter.SendTSender,TArgs 0x00013 in D:\a\1\s\Xamarin.Forms.Core\MessagingCenter.cs:115 at Xamarin.Forms.MessagingCenter.SendTSender,TArgs 0x00000 in D:\a\1\s\Xamarin.Forms.Core\MessagingCenter.cs:108 at CatholicBrain.Model.BibleOrderGameViewModel.StartBibleOrderCheck (CatholicBrain.Model.BibleOrderAnswer selectedItem,System.Collections.Generic.List`1T rightAnswerList) 0x00114 ( F:\My rightAnswerList)
MessagingCenter.Send
MessagingCenter.Send<BibleOrderGameViewModel, string>(this, "rightanswer", selectedItem.Answer);
await PopupNavigation.Instance.PopAsync();MessagingCenter.Subscribe
MessagingCenter.Subscribe<BibleOrderGameViewModel, string>(this, "rightanswer", (s, answer) =>
{
answerLabel.Text = answer;
});发布于 2019-12-27 08:12:31
我通过在包含MessagingCenter.Unsubscribe代码的页面上添加OnDisappearing()中的MessagingCenter.Subscribe代码来解决这个问题。
protected override void OnDisappearing()
{
base.OnDisappearing();
MessagingCenter.Unsubscribe<BibleOrderGameViewModel, string>(this, "rightanswer");
}发布于 2019-12-24 06:51:52
在发送消息时不应使用此方法,您发送的对象必须与页面分隔。您试过使用标记类而不是对象吗?
请参阅此链接
https://stackoverflow.com/questions/59464740
复制相似问题