2016-12-14 11 views
5

Внезапно привязка для моего TextInputEditText запустилась, и это как-то связано с компоновщиком. Если я установил компоновщик в «None», все будет работать по назначению. Кроме того, многие другие привязки используют все еще хорошо.TextInputEditText: ArgumentNullException: отсутствует информация о событии источника в MvxWeakEventSubscription

Stack им получать:

Exception брошенную во время зрения связывания 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.MvxWeakEventSubscription 2[TSource,TEventArgs]..ctor (Android.Widget.TextView source, System.String sourceEventName, System.EventHandler 1 [TEventArgs] targetEventHandler) [0x00000] в D: \ git \ MvvmCross \ MvvmCross \ Платформа \ Платформа \ WeakSubscription \ MvxWeakEventSubscription.cs: 34 на MvvmCross.Platform.WeakSubscription.MvxWeakSubscriptionExtensionMethods.WeakSubscribe [TSource, TEventArgs] (источник TSource, 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 <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 х) [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 [Т] коллекция) [0x000ff] в < 2f8f5c28c7474bed8a8f35ed56258fb1>: 0 в System.Collections.Generic.List 1[T].AddRange (System.Collections.Generic.IEnumerable 1 [Т] сбор) [0x00000] в < 2f8f5c28c7474bed8a8f35ed56258fb1>: 0 в MvvmCross.Binding.Droid.Binders.MvxAndroidViewBinder .StoreBindings (Android.Views.View view, System.Collections.Generic.IEnumerable`1 [T] newBindings) [0x00028] в < 6a0c851a22864d0993089d65320a630c>: 0 в MvvmCross.Binding.Droid.Binders.MvxAndroidViewBinder.ApplyBindingsFromAttribute (Android.Views .View view, Android.C ontent.Res.TypedArray typedArray, System.Int32 attributeId) [0x0001c] в < 6a0c851a22864d0993089d65320a630c>: 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

Я пришел по одной и той же проблеме. В моей сборке отладки текст подсказки работает корректно, но в сборке релизов я получаю это исключение, и текст подсказки не отображается. Является ли ваша проблема только текстом подсказки или привязкой текста вообще? – CodexNZ

ответ

4

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