Mvvmcross: System.ArgumentNullException: missing source event info in MvxWeakEventSubscription Parameter name: sourceEventInfo

Created on 11 Jan 2018  路  11Comments  路  Source: MvvmCross/MvvmCross




The code below is throwing an exception on set.Apply on my Xamarin,IOS project. This was working fine on MVVMCross version 5.5.2 but started throwing an exception (shown below) on version 5.6.3

Steps to reproduce :scroll:

[MvxFromStoryboard]
public partial class LoginView : MvxViewController
{
MvxNotifyPropertyChangedEventSubscription subscription;
public LoginView(IntPtr handle) : base(handle)
{
}

    public override void DidReceiveMemoryWarning ()
    {
        // Releases the view if it doesn't have a superview.
        base.DidReceiveMemoryWarning ();            
        // Release any cached data, images, etc that aren't in use.
    }

    #region View lifecycle

    public override void ViewDidLoad ()
    {
        base.ViewDidLoad ();


        var set = this.CreateBindingSet<LoginView, LoginViewModel>();
        set.Bind(userNameTextField).To(vm => vm.UserName);
        set.Bind(passwordTextField).To(vm => vm.Passworld);          
        set.Bind(loginButton).To(vm => vm.LoginCommand); 

        this.CreateBinding(isBusyControl).For(s => s.Hidden).To<LoginViewModel>(vm => vm.IsBusy).WithConversion("OppositeValueBooleanConverter").Apply();

        set.Apply();


    }

    public override void ViewWillAppear (bool animated)
    {
        base.ViewWillAppear (animated);
        ViewModel.ResetViewModel();
    }



    public override void ViewDidAppear (bool animated)
    {
        base.ViewDidAppear (animated);           
    }

    public override void ViewWillDisappear (bool animated)
    {
        base.ViewWillDisappear (animated);

    }

    public override void ViewDidDisappear (bool animated)
    {
        base.ViewDidDisappear (animated);
    }



    #endregion
}

}

Expected behavior :thinking:

Should bind as before

Actual behavior :bug:

Unhandled Exception:
System.ArgumentNullException: missing source event info in MvxWeakEventSubscription
Parameter name: sourceEventInfo
at MvvmCross.Platform.WeakSubscription.MvxWeakEventSubscription1[TSource]..ctor (UIKit.UITextField source, System.Reflection.EventInfo sourceEventInfo, System.EventHandler targetEventHandler) [0x00017] in C:\projects\mvvmcross\MvvmCross\Platform\Platform\WeakSubscription\MvxWeakEventSubscription.cs:159 at MvvmCross.Platform.WeakSubscription.MvxWeakEventSubscription1[TSource]..ctor (UIKit.UITextField source, System.String sourceEventName, System.EventHandler targetEventHandler) [0x00000] in C:\projects\mvvmcross\MvvmCross\Platform\Platform\WeakSubscription\MvxWeakEventSubscription.cs:146
at MvvmCross.Platform.WeakSubscription.MvxWeakSubscriptionExtensionMethods.WeakSubscribe[TSource] (TSource source, System.String eventName, System.EventHandler eventHandler) [0x00000] in C:\projects\mvvmcross\MvvmCross\Platfor
m\Platform\WeakSubscription\MvxWeakSubscriptionExtensionMethods.cs:69
at MvvmCross.Binding.iOS.Target.MvxUITextFieldTextTargetBinding.SubscribeToEvents () [0x00024] in C:\projects\mvvmcross\MvvmCross\Binding\iOS\Target\MvxUITextFieldTextTargetBinding.cs:48
at MvvmCross.Binding.Bindings.MvxFullBinding.CreateTargetBinding (System.Object target) [0x00057] in C:\projects\mvvmcross\MvvmCross\Core\Binding\Bindings\MvxFullBinding.cs:160
at MvvmCross.Binding.Bindings.MvxFullBinding..ctor (MvvmCross.Binding.MvxBindingRequest bindingRequest) [0x00028] in C:\projects\mvvmcross\MvvmCross\Core\Binding\Bindings\MvxFullBinding.cs:63
at MvvmCross.Binding.Binders.MvxFromTextBinder.BindSingle (MvvmCross.Binding.MvxBindingRequest bindingRequest) [0x00000] in C:\projects\mvvmcross\MvvmCross\Core\Binding\Binders\MvxFromTextBinder.cs:55
at MvvmCross.Binding.Binders.MvxFromTextBinder+<>c__DisplayClass2_0.b__0 (MvvmCross.Binding.Bindings.MvxBindingDescription description) [0x00000] in C:\projects\mvvmcross\MvvmC
ross\Core\Binding\Binders\MvxFromTextBinder.cs:37
at System.Linq.Enumerable+SelectArrayIterator2[TSource,TResult].MoveNext () [0x0003a] in /Library/Frameworks/Xamarin.iOS.framework/Versions/11.6.1.2/src/mono/external/corefx/src/System.Linq/src/System/Linq/Select.cs:233 at MvvmCross.Binding.BindingContext.MvxBindingContextOwnerExtensions.AddBindings (MvvmCross.Binding.BindingContext.IMvxBindingContextOwner view, System.Object target, System.Collections.Generic.IEnumerable1[T] bindings, System.Object clearKey) [0x0001d] in C:\projects\mvvmcross\MvvmCross\Core\Binding\BindingContext\MvxBindingContextOwnerExtensions.cs:65
at MvvmCross.Binding.BindingContext.MvxBindingContextOwnerExtensions.AddBindings (MvvmCross.Binding.BindingContext.IMvxBindingContextOwner view, System.Object target, System.Collections.Generic.IEnumerable1[T] bindingDescriptions, System.Object clearKey) [0x00018] in C:\projects\mvvmcross\MvvmCross\Core\Binding\BindingContext\MvxBindingContextOwnerExtensions.cs:86 at MvvmCross.Bin ding.BindingContext.MvxBindingContextOwnerExtensions.AddBinding (MvvmCross.Binding.BindingContext.IMvxBindingContextOwner view, System.Object target, MvvmCross.Binding.Bindings.MvxBindingDescription bindingDescription, System.Object clearKey) [0x0000b] in C:\projects\mvvmcross\MvvmCross\Core\Binding\BindingContext\MvxBindingContextOwnerExtensions.cs:79 at MvvmCross.Binding.BindingContext.MvxBaseFluentBindingDescription1[TTarget].Apply () [0x00007] in C:\projects\mvvmcross\MvvmCross\Core\Binding\BindingContext\MvxBaseFluentBindingDescription.cs:281
at MvvmCross.Binding.BindingContext.MvxFluentBindingDescriptionSet2[TOwningTarget,TSource].Apply () [0x00016] in C:\projects\mvvmcross\MvvmCross\Core\Binding\BindingContext\MvxFluentBindingDescriptionSet.cs:63 at HiITSMobile.IOS2.Views.LoginView.ViewDidLoad () [0x001a7] in C:\Visual Studio 2017\Projects\HITSMobile\HITSMobile\HiITSMobile.IOS2\Views\LoginView.cs:50 at (wrapper managed-to-native) UIKit.UIApplication:UIApplicationMai n (int,string[],intptr,intptr) at UIKit.UIApplication.Main (System.String[] args, System.IntPtr principal, System.IntPtr delegate) [0x00005] in /Users/builder/data/lanes/5665/6857dfcc/source/xamarin-macios/src/UIKit/UIApplication.cs:79 at UIKit.UIApplication.Main (System.String[] args, System.String principalClassName, System.String delegateClassName) [0x00038] in /Users/builder/data/lanes/5665/6857dfcc/source/xamarin-macios/src/UIKit/UIApplication.cs:63 at HiITSMobile.IOS2.Application.Main (System.String[] args) [0x00001] in C:\Visual Studio 2017\Projects\HITSMobile\HITSMobile\HiITSMobile.IOS2\Main.cs:12 2018-01-10 22:46:06.793 HiITSMobile.IOS2[47236:2289933] Unhandled managed exception: missing source event info in MvxWeakEventSubscription Parameter name: sourceEventInfo (System.ArgumentNullException) at MvvmCross.Platform.WeakSubscription.MvxWeakEventSubscription1[TSource]..ctor (UIKit.UITextField source, System.Reflection.EventInfo sourceEventInfo, System.EventHandler ta
rgetEventHandler) [0x00017] in C:\projects\mvvmcross\MvvmCross\Platform\Platform\WeakSubscription\MvxWeakEventSubscription.cs:159
at MvvmCross.Platform.WeakSubscription.MvxWeakEventSubscription1[TSource]..ctor (UIKit.UITextField source, System.String sourceEventName, System.EventHandler targetEventHandler) [0x00000] in C:\projects\mvvmcross\MvvmCross\Platform\Platform\WeakSubscription\MvxWeakEventSubscription.cs:146 at MvvmCross.Platform.WeakSubscription.MvxWeakSubscriptionExtensionMethods.WeakSubscribe[TSource] (TSource source, System.String eventName, System.EventHandler eventHandler) [0x00000] in C:\projects\mvvmcross\MvvmCross\Platform\Platform\WeakSubscription\MvxWeakSubscriptionExtensionMethods.cs:69 at MvvmCross.Binding.iOS.Target.MvxUITextFieldTextTargetBinding.SubscribeToEvents () [0x00024] in C:\projects\mvvmcross\MvvmCross\Binding\iOS\Target\MvxUITextFieldTextTargetBinding.cs:48 at MvvmCross.Binding.Bindings.MvxFullBinding.CreateTargetBinding (System.Object target) [0x00057] in C:\proj ects\mvvmcross\MvvmCross\Core\Binding\Bindings\MvxFullBinding.cs:160 at MvvmCross.Binding.Bindings.MvxFullBinding..ctor (MvvmCross.Binding.MvxBindingRequest bindingRequest) [0x00028] in C:\projects\mvvmcross\MvvmCross\Core\Binding\Bindings\MvxFullBinding.cs:63 at MvvmCross.Binding.Binders.MvxFromTextBinder.BindSingle (MvvmCross.Binding.MvxBindingRequest bindingRequest) [0x00000] in C:\projects\mvvmcross\MvvmCross\Core\Binding\Binders\MvxFromTextBinder.cs:55 at MvvmCross.Binding.Binders.MvxFromTextBinder+<>c__DisplayClass2_0.<Bind>b__0 (MvvmCross.Binding.Bindings.MvxBindingDescription description) [0x00000] in C:\projects\mvvmcross\MvvmCross\Core\Binding\Binders\MvxFromTextBinder.cs:37 at System.Linq.Enumerable+SelectArrayIterator2[TSource,TResult].MoveNext () [0x0003a] in /Library/Frameworks/Xamarin.iOS.framework/Versions/11.6.1.2/src/mono/external/corefx/src/System.Linq/src/System/Linq/Select.cs:233
at MvvmCross.Binding.BindingContext.MvxBindingContextOwnerExtensions.AddBindings (MvvmCross.Bi
nding.BindingContext.IMvxBindingContextOwner view, System.Object target, System.Collections.Generic.IEnumerable1[T] bindings, System.Object clearKey) [0x0001d] in C:\projects\mvvmcross\MvvmCross\Core\Binding\BindingContext\MvxBindingContextOwnerExtensions.cs:65 at MvvmCross.Binding.BindingContext.MvxBindingContextOwnerExtensions.AddBindings (MvvmCross.Binding.BindingContext.IMvxBindingContextOwner view, System.Object target, System.Collections.Generic.IEnumerable1[T] bindingDescriptions, System.Object clearKey) [0x00018] in C:\projects\mvvmcross\MvvmCross\Core\Binding\BindingContext\MvxBindingContextOwnerExtensions.cs:86
at MvvmCross.Binding.BindingContext.MvxBindingContextOwnerExtensions.AddBinding (MvvmCross.Binding.BindingContext.IMvxBindingContextOwner view, System.Object target, MvvmCross.Binding.Bindings.MvxBindingDescription bindingDescription, System.Object clearKey) [0x0000b] in C:\projects\mvvmcross\MvvmCross\Core\Binding\BindingContext\MvxBindingContextOwnerExtensions.cs:79
at MvvmCross.
Binding.BindingContext.MvxBaseFluentBindingDescription1[TTarget].Apply () [0x00007] in C:\projects\mvvmcross\MvvmCross\Core\Binding\BindingContext\MvxBaseFluentBindingDescription.cs:281 at MvvmCross.Binding.BindingContext.MvxFluentBindingDescriptionSet2[TOwningTarget,TSource].Apply () [0x00016] in C:\projects\mvvmcross\MvvmCross\Core\Binding\BindingContext\MvxFluentBindingDescriptionSet.cs:63
at HiITSMobile.IOS2.Views.LoginView.ViewDidLoad () [0x001a7] in C:\Visual Studio 2017\Projects\HITSMobile\HITSMobile\HiITSMobile.IOS2Views\LoginView.cs:50
at (wrapper managed-to-native) UIKit.UIApplication:UIApplicationMain (int,string[],intptr,intptr)
at UIKit.UIApplication.Main (System.String[] args, System.IntPtr principal, System.IntPtr delegate) [0x00005] in /Users/builder/data/lanes/5665/6857dfcc/source/xamarin-macios/src/UIKit/UIApplication.cs:79
at UIKit.UIApplication.Main (System.String[] args, System.String principalClassName, System.String delegateClassName) [0x00038] in
/Users/builder/data/lanes/5665/6857dfcc/source/xamarin-macios/src/UIKit/UIApplication.cs:63
at HiITSMobile.IOS2.Application.Main (System.String[] args) [0x00001] in C:\Visual Studio 2017\Projects\HITSMobile\HITSMobile\HiITSMobile.IOS2\Main.cs:12
2018-01-10 22:46:06.799 HiITSMobile.IOS2[47236:2289933] critical: Stacktrace:
2018-01-10 22:46:06.800 HiITSMobile.IOS2[47236:2289933] critical:
Native stacktrace:
2018-01-10 22:46:06.833 HiITSMobile.IOS2[47236:2289933] critical: 0 HiITSMobile.IOS2 0x0000000100ebf7c4 mono_handle_native_crash + 244
2018-01-10 22:46:06.833 HiITSMobile.IOS2[47236:2289933] critical: 1 libsystem_platform.dylib 0x000000010735ff5a _sigtramp + 26
2018-01-10 22:46:06.834 HiITSMobile.IOS2[47236:2289933] critical: 2 libsystem_pthread.dylib 0x000000010737e30b _pthread_keys + 9787
2018-01-10 22:46:06.834 HiITSMobile.IOS2[47236:2289933] critical: 3 libsystem_c.dylib 0x0000000106ff80e7 abort + 127
2018-01-10 22:46:06.834 HiITSMobile.IOS2[47236:2289933] critical: 4 HiITSMobile.IOS2 0x000000010105943f xamarin_unhandled_exception_handler + 47
2018-01-10 22:46:06.834 HiITSMobile.IOS2[47236:2289933] critical: 5 HiITSMobile.IOS2 0x0000000100f24314 mono_invoke_unhandled_exception_hook + 148
2018-01-10 22:46:06.834 HiITSMobile.IOS2[47236:2289933] critical: 6 HiITSMobile.IOS2 0x0000000100ebf57d mono_handle_exception_internal + 5805
2018-01-10 22:46:06.835 HiITSMobile.IOS2[47236:2289933] critical: 7 HiITSMobile.IOS2
0x0000000100ebdec8 mono_handle_exception + 24
2018-01-10 22:46:06.835 HiITSMobile.IOS2[47236:2289933] critical: 8 HiITSMobile.IOS2 0x0000000100e4383f mono_amd64_throw_exception + 143
2018-01-10 22:46:06.835 HiITSMobile.IOS2[47236:2289933] critical: 9 ??? 0x0000000115a49ae7 0x0 + 4658076391
2018-01-10 22:46:06.835 HiITSMobile.IOS2[47236:2289933] critical: 10 ??? 0x0000000118173f7b 0x0 + 4699144059
2018-01-10 22:46:06.835 HiITSMobile.IOS2[47236:2289933] critical:

Configuration :wrench:

Version: 5.6.3

Platform:

  • [X ] :iphone: iOS
  • [ ] :robot: Android
  • [ ] :checkered_flag: WPF
  • [ ] :earth_americas: UWP
  • [ ] :apple: MacOS
  • [ ] :tv: tvOS
  • [ ] :monkey: Xamarin.Forms
invalid

Most helpful comment

I solved it. I'll explain here so it can be Googled later.

The error came from binding a UITextField, and the stack trace clearly shows it uses MvxUITextFieldTextTargetBinding, so I looked in MvxUITextFieldTextTargetBinding.cs and (at time of writing) found this:

_subscriptionChanged = target.WeakSubscribe(nameof(target.EditingChanged), HandleEditTextValueChanged);
_subscriptionEndEditing = target.WeakSubscribe(nameof(target.EditingDidEnd), HandleEditTextValueChanged);

We see here an indirect reference to EditingChanged and EditingDidEnd. But the example of LinkerPleaseInclude.cs linked to from the MvvmCross 6 documentation only addresses EditingChanged, and not EditingDidEnd. So I amended mine to resemble the following:

public void Include(UITextField textField) {
    textField.Text = textField.Text + "";
    textField.EditingChanged += (sender, args) => { textField.Text = ""; };
    textField.EditingDidEnd += (sender, args) => { textField.Text = ""; };
}

Now it binds.

All 11 comments

As workaround add this class to your iOS project

 public class LinkerPleaseInclude
    {        
        public void Include(UITextField textField)
        {
            textField.Text = textField.Text + "";
            textField.EditingChanged += (sender, args) => { textField.Text = ""; };
        }

        public void Include(UIButton uiButton)
        {
            uiButton.TouchUpInside += (s, e) =>
                                      uiButton.SetTitle(uiButton.Title(UIControlState.Normal), UIControlState.Normal);
        }
    }

Same problem here - and the suggestion by @b1ktor helped as well. Thanks!

(Though I do not have a stacktrace as complete as the OP. How do I obtain such a trace in an appstore or ad-hoc build?)

@JackDMF you add crash analytics to your app.

@Cheesebaron I am facing some same kind of exception but with UISearchBar.

System.ArgumentNullException: missing source event info in MvxWeakEventSubscription Parameter name: sourceEventInfo at MvvmCross.Platform.WeakSubscription.MvxWeakEventSubscription`2[TSource,TEventArgs]..ctor (UIKit.UISearchBar source, System.Reflection.EventInfo sourceEventInfo, System.EventHandler`1[TEventArgs] targetEventHandler) [0x00017] in <6adc0d5857264558a9d45778a78ae02a>:0 at MvvmCross.Platform.WeakSubscription.MvxWeakEventSubscription`2[TSource,TEventArgs]..ctor (UIKit.UISearchBar source, System.String sourceEventName, System.EventHandler`1[TEventArgs] targetEventHandler) [0x00012] in <6adc0d5857264558a9d45778a78ae02a>:0 at MvvmCross.Platform.WeakSubscription.MvxWeakSubscriptionExtensionMethods.WeakSubscribe[TSource,TEventArgs] (TSource source, System.String eventName, System.EventHandler`1[TEventArgs] eventHandler) [0x00000] in <6adc0d5857264558a9d45778a78ae02a>:0 at MvvmCross.Binding.iOS.Target.MvxUISearchBarTextTargetBinding.SubscribeToEvents () [0x00024] in <614c9ef828c14ba687a40ec2656f480f>:0 at MvvmCross.Binding.Bindings.MvxFullBinding.CreateTargetBinding (System.Object target) [0x00057] in <866b1e46764b48aab0d408952a6f006f>:0 at MvvmCross.Binding.Bindings.MvxFullBinding..ctor (MvvmCross.Binding.MvxBindingRequest bindingRequest) [0x0002f] in <866b1e46764b48aab0d408952a6f006f>:0 at MvvmCross.Binding.Binders.MvxFromTextBinder.BindSingle (MvvmCross.Binding.MvxBindingRequest bindingRequest) [0x00000] in <866b1e46764b48aab0d408952a6f006f>:0 at MvvmCross.Binding.Binders.MvxFromTextBinder+<>c__DisplayClass2_0.<Bind>b__0 (MvvmCross.Binding.Bindings.MvxBindingDescription description) [0x00018] in <866b1e46764b48aab0d408952a6f006f>:0 at System.Linq.Enumerable+SelectArrayIterator`2[TSource,TResult].MoveNext () [0x0003a] in <98d8ae0ba2c1456c96653359c4b1be27>:0 at MvvmCross.Binding.BindingContext.MvxBindingContextOwnerExtensions.AddBindings (MvvmCross.Binding.BindingContext.IMvxBindingContextOwner view, System.Object target, System.Collections.Generic.IEnumerable`1[T] bindings, System.Object clearKey) [0x0001d] in <866b1e46764b48aab0d408952a6f006f>:0 at MvvmCross.Binding.BindingContext.MvxBindingContextOwnerExtensions.AddBindings (MvvmCross.Binding.BindingContext.IMvxBindingContextOwner view, System.Object target, System.Collections.Generic.IEnumerable`1[T] bindingDescriptions, System.Object clearKey) [0x00018] in <866b1e46764b48aab0d408952a6f006f>:0 at MvvmCross.Binding.BindingContext.MvxBindingContextOwnerExtensions.AddBinding (MvvmCross.Binding.BindingContext.IMvxBindingContextOwner view, System.Object target, MvvmCross.Binding.Bindings.MvxBindingDescription bindingDescription, System.Object clearKey) [0x0000b] in <866b1e46764b48aab0d408952a6f006f>:0 at MvvmCross.Binding.BindingContext.MvxBaseFluentBindingDescription`1[TTarget].Apply () [0x0001f] in <866b1e46764b48aab0d408952a6f006f>:0 at MvvmCross.Binding.BindingContext.MvxFluentBindingDescriptionSet`2[TOwningTarget,TSource].Apply () [0x00016] in <866b1e46764b48aab0d408952a6f006f>:0 at AirConnect.iOS.Views.PickupLocationsView.ViewDidLoad () [0x0025b] in /Users/msalman/salman/projects/xarmin/13-feb-2018/ori/Mobility First Call Centric/AirConnect/AirConnect.iOS/Views/PickupLocationsView.cs:62 at at (wrapper managed-to-native) UIKit.UIApplication:UIApplicationMain (int,string[],intptr,intptr) at UIKit.UIApplication.Main (System.String[] args, System.IntPtr principal, System.IntPtr delegate) [0x00005] in /Users/builder/data/lanes/5665/db807ec9/source/xamarin-macios/src/UIKit/UIApplication.cs:79 at UIKit.UIApplication.Main (System.String[] args, System.String principalClassName, System.String delegateClassName) [0x00038] in /Users/builder/data/lanes/5665/db807ec9/source/xamarin-macios/src/UIKit/UIApplication.cs:63 at AirConnect.iOS.Application.Main (System.String[] args) [0x00032] in /Users/msalman/salman/projects/xarmin/13-feb-2018/ori/Mobility First Call Centric/AirConnect/AirConnect.iOS/Main.cs:23

I check the LinkerPleaseInclude.cs in my code and as well as in MVVMCross code file but it does not contain any Include statement for UISearchBar hence I search for it and found this post but it also didn't help me.

By the way it is working fine on simulator but getting exception on IOS device. Any directions for me ?

I am having the same problem as @msalmanST with a UISearchBar. It works in the simulator and not on a device. I'm using v5.6.3. It was working fine in v4.4.0

Update: I was able to resolve this by adding the TextChanged event to LinkerPleaseInclude.cs

public void Include(UISearchBar searchBar)
{
searchBar.Text = searchBar.Text + "";
searchBar.Placeholder = searchBar.Placeholder + "";
searchBar.TextChanged += (s, e) => { };
}

I've got this after updating to MvvmCross 6 and the hack above doesn't seem to affect it. I'm trying to bind a UITextField, as above, and I already had the hack above in my sources. I don't have any leads, so I'm not sure which code to present. Where do I start?

I solved it. I'll explain here so it can be Googled later.

The error came from binding a UITextField, and the stack trace clearly shows it uses MvxUITextFieldTextTargetBinding, so I looked in MvxUITextFieldTextTargetBinding.cs and (at time of writing) found this:

_subscriptionChanged = target.WeakSubscribe(nameof(target.EditingChanged), HandleEditTextValueChanged);
_subscriptionEndEditing = target.WeakSubscribe(nameof(target.EditingDidEnd), HandleEditTextValueChanged);

We see here an indirect reference to EditingChanged and EditingDidEnd. But the example of LinkerPleaseInclude.cs linked to from the MvvmCross 6 documentation only addresses EditingChanged, and not EditingDidEnd. So I amended mine to resemble the following:

public void Include(UITextField textField) {
    textField.Text = textField.Text + "";
    textField.EditingChanged += (sender, args) => { textField.Text = ""; };
    textField.EditingDidEnd += (sender, args) => { textField.Text = ""; };
}

Now it binds.

Thanks @JoeCooper, helped me! 馃

Glad to hear it @vallgrenerik

Let it be known, for others reading in the future, that what to understand from my prior post is _not_ to blindly add "EditingDidEnd".

I've added the "EditingDidEnd" fix to the canonical example of LinkerPleaseInclude, so future users will not have this issue if they copy from the canonical example of LinkerPleaseInclude.

But they will run into other, similar issues. This family of errors is a natural consequence of the way MvvmCross and the linking process work, and the "LinkerPleaseInclude" hack must therefore be actively maintained. They will miss a spot.

If you run into this, follow my example above and look at the stack trace, then look at the source to see what it's trying to bind.

If you're trying to do something very typical, or something that you feel should already be addressed in the canonical example of LinkerPleaseInclude, than go ahead and send them a PR.

Glad to hear it @vallgrenerik

Let it be known, for others reading in the future, that what to understand from my prior post is _not_ to blindly add "EditingDidEnd".

I've added the "EditingDidEnd" fix to the canonical example of LinkerPleaseInclude, so future users will not have this issue if they copy from the canonical example of LinkerPleaseInclude.

But they will run into other, similar issues. This family of errors is a natural consequence of the way MvvmCross and the linking process work, and the "LinkerPleaseInclude" hack must therefore be actively maintained. They will miss a spot.

If you run into this, follow my example above and look at the stack trace, then look at the source to see what it's trying to bind.

If you're trying to do something very typical, or something that you feel should already be addressed in the canonical example of LinkerPleaseInclude, than go ahead and send them a PR.

thanks, you save my day

Was this page helpful?
0 / 5 - 0 ratings