TextInputEditText:ArgumentNullException:MvxWeakEventSubscription中缺少源事件信息

突然,我的TextInputEditText的绑定开始失败,并且它与链接器有关。 如果我将链接器设置为“无”,则一切都按预期工作。 我使用的很多其他绑定仍然可以正常工作。

堆栈我得到:

视图绑定期间抛出的exceptionArgumentNullException:MvxWeakEventSubscription中缺少源事件信息参数名称:MvvmCross.Platform.WeakSubscription.MvxWeakEventSubscription 2[TSource,TEventArgs]..ctor (Android.Widget.TextView source, System.Reflection.EventInfo sourceEventInfo, System.EventHandler sourceEventInfo 2[TSource,TEventArgs]..ctor (Android.Widget.TextView source, System.Reflection.EventInfo sourceEventInfo, System.EventHandler 1 [TEventArgs] targetEventHandler)[0x00017]在D:\ git \ MvvmCross \ MvvmCross \ Platform \ Platform \ WeakSubscription \ MvxWeakEventSubscription.cs:47 at MvvmCross.Platform.WeakSubscription.MvxWeakEventSubscription 2[TSource,TEventArgs]..ctor (Android.Widget.TextView source, System.String sourceEventName, System.EventHandler 1 [TEventArgs] targetEventHandler)[0x00000]位于MvvmCross.Platform的D:\ git \ MvvmCross \ MvvmCross \ Platform \ Platform \ WeakSubscription \ MvxWeakEventSubscription.cs:34 .WeakSubscription.MvxWeakSubscriptionExtensionMethods.WeakSubscribe [TSource,TEventArgs](TSource source,System.String eventName,System.EventHandler 1[TEventArgs] eventHandler) [0x00000] in D:\git\MvvmCross\MvvmCross\Platform\Platform\WeakSubscription\MvxWeakSubscriptionExtensionMethods.cs:81 at MvvmCross.Binding.Droid.Target.MvxTextViewTextTargetBinding.SubscribeToEvents () [0x0000b] in :0 at MvvmCross.Binding.Bindings.MvxFullBinding.CreateTargetBinding (System.Object target) [0x00057] in D:\git\MvvmCross\MvvmCross\Core\Binding\Bindings\MvxFullBinding.cs:157 at MvvmCross.Binding.Bindings.MvxFullBinding..ctor (MvvmCross.Binding.MvxBindingRequest bindingRequest) [0x00028] in D:\git\MvvmCross\MvvmCross\Core\Binding\Bindings\MvxFullBinding.cs:64 at MvvmCross.Binding.Binders.MvxFromTextBinder.BindSingle (MvvmCross.Binding.MvxBindingRequest bindingRequest) [0x00000] in D:\git\MvvmCross\MvvmCross\Core\Binding\Binders\MvxFromTextBinder.cs:56 at MvvmCross.Binding.Binders.MvxFromTextBinder+c__DisplayClass2_0.b__0 (MvvmCross.Binding.Bindings.MvxBindingDescription description) [0x00000] in D:\git\MvvmCross\MvvmCross\Core\Binding\Binders\MvxFromTextBinder.cs:38 at System.Linq.Enumerable+c__AnonStorey1D 1[TEventArgs] eventHandler) [0x00000] in D:\git\MvvmCross\MvvmCross\Platform\Platform\WeakSubscription\MvxWeakSubscriptionExtensionMethods.cs:81 at MvvmCross.Binding.Droid.Target.MvxTextViewTextTargetBinding.SubscribeToEvents () [0x0000b] in :0 at MvvmCross.Binding.Bindings.MvxFullBinding.CreateTargetBinding (System.Object target) [0x00057] in D:\git\MvvmCross\MvvmCross\Core\Binding\Bindings\MvxFullBinding.cs:157 at MvvmCross.Binding.Bindings.MvxFullBinding..ctor (MvvmCross.Binding.MvxBindingRequest bindingRequest) [0x00028] in D:\git\MvvmCross\MvvmCross\Core\Binding\Bindings\MvxFullBinding.cs:64 at MvvmCross.Binding.Binders.MvxFromTextBinder.BindSingle (MvvmCross.Binding.MvxBindingRequest bindingRequest) [0x00000] in D:\git\MvvmCross\MvvmCross\Core\Binding\Binders\MvxFromTextBinder.cs:56 at MvvmCross.Binding.Binders.MvxFromTextBinder+c__DisplayClass2_0.b__0 (MvvmCross.Binding.Bindings.MvxBindingDescription description) [0x00000] in D:\git\MvvmCross\MvvmCross\Core\Binding\Binders\MvxFromTextBinder.cs:38 at System.Linq.Enumerable+c__AnonStorey1D 1[TEventArgs] eventHandler) [0x00000] in D:\git\MvvmCross\MvvmCross\Platform\Platform\WeakSubscription\MvxWeakSubscriptionExtensionMethods.cs:81 at MvvmCross.Binding.Droid.Target.MvxTextViewTextTargetBinding.SubscribeToEvents () [0x0000b] in :0 at MvvmCross.Binding.Bindings.MvxFullBinding.CreateTargetBinding (System.Object target) [0x00057] in D:\git\MvvmCross\MvvmCross\Core\Binding\Bindings\MvxFullBinding.cs:157 at MvvmCross.Binding.Bindings.MvxFullBinding..ctor (MvvmCross.Binding.MvxBindingRequest bindingRequest) [0x00028] in D:\git\MvvmCross\MvvmCross\Core\Binding\Bindings\MvxFullBinding.cs:64 at MvvmCross.Binding.Binders.MvxFromTextBinder.BindSingle (MvvmCross.Binding.MvxBindingRequest bindingRequest) [0x00000] in D:\git\MvvmCross\MvvmCross\Core\Binding\Binders\MvxFromTextBinder.cs:56 at MvvmCross.Binding.Binders.MvxFromTextBinder+c__DisplayClass2_0.b__0 (MvvmCross.Binding.Bindings.MvxBindingDescription description) [0x00000] in D:\git\MvvmCross\MvvmCross\Core\Binding\Binders\MvxFromTextBinder.cs:38 at System.Linq.Enumerable+c__AnonStorey1D 3 [TSource,TMiddle,TResult]。 m__0(TSource x)[0x00012] in:0 at System.Linq.Enumerable + c__AnonStorey1D 3[TSource,TMiddle,TResult].m__0 (TSource x) [0x00000] in :0 at System.Linq.Enumerable+WhereSelectEnumerableIterator 2 [TSource,TResult] .MoveNext()[0x00064] in:0 at System.Collections .Generic.List 1[T].InsertRange (System.Int32 index, System.Collections.Generic.IEnumerable 1 [T] collection)[0x000ff] in :0 at System.Collections.Generic.List 1[T].AddRange (System.Collections.Generic.IEnumerable Android.Views.View视图,System.Collections.Generic)中的1[T].AddRange (System.Collections.Generic.IEnumerable 1 [T] collection)[0x00000] in :0 .Inumerable`1 [T] newBindings)[0x00028]在:0在MvvmCross.Binding.Droid.Binders.MvxAndroidViewBinder.ApplyBindingsFr omAttribute(Android.Views.View视图,Android.Content.Res.TypedArray typedArray,System.Int32 attributeId)[0x0001c]在中:0

我已经将以下内容添加到“LinkerPleaseInclude”,但它没有帮助。

  public void Include(TextInputEditText text) { text.TextChanged += (sender, args) => text.Text = "" + text.Text; text.Hint = "" + text.Hint; text.Background = (Drawable)Android.Resource.Color.Black; text.Text = "Text" + text.Text; } public void Include(TextInputLayout text) { text.Hint = "" + text.Hint; text.Background = (Drawable)Android.Resource.Color.Black; } 

将TextInputEditText更改为简单的EditText,也没有帮助,并抛出相同的exception。

我错过了什么? 通过查看堆栈,我没有更接近解决方案。

经过一番挖掘,我发现这个答案显示MvvmCross的新版本(v4.4.0)发生了变化,需要在项目的LinkerPleaseInclude.cs中对TextView部分进行调整。