TextInputEditText: ArgumentNullException: отсутствует информация о событии источника в MvxWeakEventSubscription

Внезапно привязка для моего TextInputEditText начала давать сбой, и это как-то связано с компоновщиком. Если я установлю компоновщик на "Нет", все будет работать так, как задумано. Многие другие привязки, которые я использую, по-прежнему работают просто отлично.

Стек получаю:

Исключение, генерируемое во время привязки представления ArgumentNullException: отсутствует информация об исходном событии в MvxWeakEventSubscription Имя параметра: sourceEventInfo в MvvmCross.Platform.WeakSubscription.MvxWeakEventSubscription 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 в MvvmCross.Platform.WeakSubscription.MvxWek 2[TSource,TEventArgs]..ctor (Android.Widget.TextView source, System.String sourceEventName, System.EventHandler1[TEventArgs] targetEventHandler) [0x00000] в D:\git\MvvmCross\MvvmCross\Platform\Platform\WeakSubscription\MvxWeakEventSubscription.cs:34 в MvvmCross.Platform.WeakSubscription.Mubx.Exception.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 <6a0c851a22864d0993089d65320a630c>: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.<Bind>b__0 (MvvmCross.Binding.Bindings.MvxBindingDescription description) [0x00000] in D:\git\MvvmCross\MvvmCross\Core\Binding\Binders\MvxFromTextBinder.cs:38 at System.Linq.Enumerable+<CombineSelectors>c__AnonStorey1D 3 [TSource, TMiddle, TResult]. <> M__0 (TSource x) [0x00012] в:0 в System.Linq.Enumerable + c__AnonStorey1D 3[TSource,TMiddle,TResult].<>m__0 (TSource x) [0x00000] in <fcebdd9506364c04ba70cbb6c51ded52>:0 at System.Linq.Enumerable+WhereSelectEnumerableIterator 2 [TSource, TResult].MoveNext () [0x00064] в:0 в System.Collections.Generic.List 1[T].InsertRange (System.Int32 index, System.Collections.Generic.IEnumerable 1 [T] collection) [0x000ff] в <2f8f5c28c7474bed8a8f35ed56258fb1>:0 в System.Collections.Generic.List 1[T].AddRange (System.Collections.Generic.IEnumerable 1 [T] collection) [0x00000] в <2f8f5c28c7474bed8a8f35ed56258fb1>:0 в MvvmCross.Binding.Droid.Binders.MvxAndroidViewBinder.StoreBindings (представление Android.Views.View, представление System.Collections.Generic.IEnumeB1) [[Tnumerable] 1) 0x00028] в <6a0c851a22864d0993089d65320a630c>:0 в MvvmCross.Binding.Droid.Binders.MvxAndroidViewBinder.ApplyBindingsFromAttribute (представление Android.Views.View, Android.Content.Res.Tes.TypedArray typed0d0300) 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, тоже не помогает и выдает то же исключение.

Что мне не хватает? Я не приближаюсь к решению, глядя на стек.

1 ответ

Решение

После недолгих поисков я нашел ответ, который показывает, что в новой версии (v4.4.0) MvvmCross произошли изменения, требующие настройки раздела TextView в LinkerPleaseInclude.cs вашего проекта.

Другие вопросы по тегам