Giter VIP home page Giter VIP logo

Comments (4)

buzzware avatar buzzware commented on May 17, 2024

I'm hitting this too, without MVVMCross. I really want Commander to work, as I hate command objects, but they are required for MVVM in Xamarin.

[MonoDroid] UNHANDLED EXCEPTION:
[MonoDroid] System.InvalidProgramException: Missing or incorrect header for method add_CanExecuteChanged
[MonoDroid] at Xamarin.Forms.Button.OnCommandChanged () [0x00008] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Core\Button.cs:212
[MonoDroid] at Xamarin.Forms.Button+<>c.<.cctor>b__72_0 (Xamarin.Forms.BindableObject bo, System.Object o, System.Object n) [0x00000] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Core\Button.cs:12
[MonoDroid] at Xamarin.Forms.BindableObject.SetValueActual (Xamarin.Forms.BindableProperty property, Xamarin.Forms.BindablePropertyContext context, System.Object value, Boolean currentlyApplying, SetValueFlags attributes, Boolean silent) [0x00108] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Core\BindableObject.cs:584
[MonoDroid] at Xamarin.Forms.BindableObject.SetValueCore (Xamarin.Forms.BindableProperty property, System.Object value, SetValueFlags attributes, SetValuePrivateFlags privateAttributes) [0x0014b] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Core\BindableObject.cs:378
[MonoDroid] at Xamarin.Forms.BindingExpression.ApplyCore (System.Object sourceObject, Xamarin.Forms.BindableObject target, Xamarin.Forms.BindableProperty property, Boolean fromTarget) [0x0020c] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Core\BindingExpression.cs:177
[MonoDroid] at Xamarin.Forms.BindingExpression.Apply (System.Object sourceObject, Xamarin.Forms.BindableObject target, Xamarin.Forms.BindableProperty property) [0x0006b] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Core\BindingExpression.cs:76
[MonoDroid] at Xamarin.Forms.Binding.Apply (System.Object newContext, Xamarin.Forms.BindableObject bindObj, Xamarin.Forms.BindableProperty targetProperty) [0x00042] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Core\Binding.cs:113
[MonoDroid] at Xamarin.Forms.BindableObject.ApplyBindings (System.Object oldContext, Boolean skipBindingContext) [0x00034] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Core\BindableObject.cs:408
[MonoDroid] at Xamarin.Forms.BindableObject.ApplyBindings (System.Object oldContext) [0x00000] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Core\BindableObject.cs:123
[MonoDroid] at Xamarin.Forms.BindableObject.SetInheritedBindingContext (Xamarin.Forms.BindableObject bindable, System.Object value) [0x0005a] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Core\BindableObject.cs:117
[MonoDroid] at Xamarin.Forms.Element.SetChildInheritedBindingContext (Xamarin.Forms.Element child, System.Object context) [0x00000] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Core\Element.cs:473
[MonoDroid] at Xamarin.Forms.Element.OnBindingContextChanged () [0x00021] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Core\Element.cs:323
[MonoDroid] at Xamarin.Forms.View.OnBindingContextChanged () [0x00042] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Core\View.cs:98
[MonoDroid] at Xamarin.Forms.Grid.OnBindingContextChanged () [0x00006] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Core\Grid.cs:138
[MonoDroid] at Xamarin.Forms.BindableObject.SetInheritedBindingContext (Xamarin.Forms.BindableObject bindable, System.Object value) [0x00061] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Core\BindableObject.cs:118
[MonoDroid] at Xamarin.Forms.Element.SetChildInheritedBindingContext (Xamarin.Forms.Element child, System.Object context) [0x00000] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Core\Element.cs:473
[MonoDroid] at Xamarin.Forms.Element.OnBindingContextChanged () [0x00021] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Core\Element.cs:323
[MonoDroid] at Xamarin.Forms.View.OnBindingContextChanged () [0x00042] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Core\View.cs:98
[MonoDroid] at Xamarin.Forms.BindableObject.SetInheritedBindingContext (Xamarin.Forms.BindableObject bindable, System.Object value) [0x00061] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Core\BindableObject.cs:118
[MonoDroid] at Xamarin.Forms.Element.SetChildInheritedBindingContext (Xamarin.Forms.Element child, System.Object context) [0x00000] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Core\Element.cs:473
[MonoDroid] at Xamarin.Forms.Element.OnBindingContextChanged () [0x00021] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Core\Element.cs:323
[MonoDroid] at Xamarin.Forms.View.OnBindingContextChanged () [0x00042] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Core\View.cs:98
[MonoDroid] at Xamarin.Forms.BindableObject.SetInheritedBindingContext (Xamarin.Forms.BindableObject bindable, System.Object value) [0x00061] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Core\BindableObject.cs:118
[MonoDroid] at Xamarin.Forms.Element.SetChildInheritedBindingContext (Xamarin.Forms.Element child, System.Object context) [0x00000] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Core\Element.cs:473
[MonoDroid] at Xamarin.Forms.Element.OnBindingContextChanged () [0x00021] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Core\Element.cs:323
[MonoDroid] at Xamarin.Forms.View.OnBindingContextChanged () [0x00042] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Core\View.cs:98
[MonoDroid] at Xamarin.Forms.Grid.OnBindingContextChanged () [0x00006] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Core\Grid.cs:138
[MonoDroid] at Xamarin.Forms.BindableObject.SetInheritedBindingContext (Xamarin.Forms.BindableObject bindable, System.Object value) [0x00061] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Core\BindableObject.cs:118
[MonoDroid] at Xamarin.Forms.Element.SetChildInheritedBindingContext (Xamarin.Forms.Element child, System.Object context) [0x00000] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Core\Element.cs:473
[MonoDroid] at Xamarin.Forms.TemplatedPage.SetChildInheritedBindingContext (Xamarin.Forms.Element child, System.Object context) [0x00008] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Core\TemplatedPage.cs:35
[MonoDroid] at Xamarin.Forms.Element.OnBindingContextChanged () [0x00021] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Core\Element.cs:323
[MonoDroid] at Xamarin.Forms.Page.OnBindingContextChanged () [0x00000] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Core\Page.cs:203
[MonoDroid] at Xamarin.Forms.ContentPage.OnBindingContextChanged () [0x00000] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Core\ContentPage.cs:16
[MonoDroid] at FreshMvvm.FreshBaseContentPage.OnBindingContextChanged () [0x00000] in /Users/michaelridland/Projects/FreshMvvm/src/FreshMvvm/FreshBaseContentPage.cs:15
[MonoDroid] at FreeXam.Forms.SelfContextFreshPage.OnBindingContextChanged () [0x00044] in /Users/gary/repos/freewheeler/FreeXam/FreeXam.Forms/Pages/SelfContextFreshPage.cs:29
[MonoDroid] at Xamarin.Forms.BindableObject.BindingContextPropertyBindingPropertyChanged (Xamarin.Forms.BindableObject bindable, System.Object oldvalue, System.Object newvalue) [0x0001b] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Core\BindableObject.cs:429
[MonoDroid] at Xamarin.Forms.BindableObject.SetValueActual (Xamarin.Forms.BindableProperty property, Xamarin.Forms.BindablePropertyContext context, System.Object value, Boolean currentlyApplying, SetValueFlags attributes, Boolean silent) [0x00108] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Core\BindableObject.cs:584
[MonoDroid] at Xamarin.Forms.BindableObject.SetValueCore (Xamarin.Forms.BindableProperty property, System.Object value, SetValueFlags attributes, SetValuePrivateFlags privateAttributes) [0x00171] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Core\BindableObject.cs:386
[MonoDroid] at Xamarin.Forms.BindableObject.SetValue (Xamarin.Forms.BindableProperty property, System.Object value, Boolean fromStyle, Boolean checkAccess) [0x0005f] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Core\BindableObject.cs:531
[MonoDroid] at Xamarin.Forms.BindableObject.SetValue (Xamarin.Forms.BindableProperty property, System.Object value) [0x00000] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Core\BindableObject.cs:83
[MonoDroid] at Xamarin.Forms.BindableObject.set_BindingContext (System.Object value) [0x00000] in C:\BuildAgent2\work\aad494dc9bc9783\Xamarin.Forms.Core\BindableObject.cs:24
[MonoDroid] at FreshMvvm.FreshPageModelResolver.BindingPageModel (System.Object data, Xamarin.Forms.Page targetPage, FreshMvvm.FreshBasePageModel pageModel) [0x00022] in /Users/michaelridland/Projects/FreshMvvm/src/FreshMvvm/FreshPageModelResolver.cs:54
[MonoDroid] at FreshMvvm.FreshPageModelResolver.ResolvePageModel (System.Type type, System.Object data, FreshMvvm.FreshBasePageModel pageModel) [0x0003b] in /Users/michaelridland/Projects/FreshMvvm/src/FreshMvvm/FreshPageModelResolver.cs:43
[MonoDroid] at FreshMvvm.FreshPageModelResolver.ResolvePageModel[T](System.Object data, FreshMvvm.T pageModel) [0x0000e] in /Users/michaelridland/Projects/FreshMvvm/src/FreshMvvm/FreshPageModelResolver.cs:25
[MonoDroid] at FreshMvvm.PageModelCoreMethods+c__async5.MoveNext () [0x00021] in /Users/michaelridland/Projects/FreshMvvm/src/FreshMvvm/PageModelCoreMethods.cs:68
[MonoDroid] --- End of stack trace from previous location where exception was thrown ---
[MonoDroid] at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in /Users/builder/data/lanes/3415/7db2aac3/source/mono/external/referencesource/mscorlib/system/runtime/exceptionservices/exceptionservicescommon.cs:143
[MonoDroid] at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x00047] in /Users/builder/data/lanes/3415/7db2aac3/source/mono/external/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:187
[MonoDroid] at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x0002e] in /Users/builder/data/lanes/3415/7db2aac3/source/mono/external/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:156
[MonoDroid] at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x0000b] in /Users/builder/data/lanes/3415/7db2aac3/source/mono/external/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:128
[MonoDroid] at System.Runtime.CompilerServices.TaskAwaiter.GetResult () [0x00000] in /Users/builder/data/lanes/3415/7db2aac3/source/mono/external/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:113
[MonoDroid] at FreshMvvm.PageModelCoreMethods+c__async3`1[T].MoveNext () [0x00031] in /Users/michaelridland/Projects/FreshMvvm/src/FreshMvvm/PageModelCoreMethods.cs:43
[MonoDroid] --- End of stack trace from previous location where exception was thrown ---
[MonoDroid] at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in /Users/builder/data/lanes/3415/7db2aac3/source/mono/external/referencesource/mscorlib/system/runtime/exceptionservices/exceptionservicescommon.cs:143
[MonoDroid] at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x00047] in /Users/builder/data/lanes/3415/7db2aac3/source/mono/external/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:187
[MonoDroid] at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x0002e] in /Users/builder/data/lanes/3415/7db2aac3/source/mono/external/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:156
[MonoDroid] at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x0000b] in /Users/builder/data/lanes/3415/7db2aac3/source/mono/external/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:128
[MonoDroid] at System.Runtime.CompilerServices.TaskAwaiter.GetResult () [0x00000] in /Users/builder/data/lanes/3415/7db2aac3/source/mono/external/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:113
[MonoDroid] at FreeXam.Forms.PartnerRewardsView+c__async0.MoveNext () [0x0008f] in /Users/gary/repos/freewheeler/FreeXam/FreeXam.Forms/Views/PartnerRewardsView.xaml.cs:30
[MonoDroid] --- End of stack trace from previous location where exception was thrown ---
[MonoDroid] at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in /Users/builder/data/lanes/3415/7db2aac3/source/mono/external/referencesource/mscorlib/system/runtime/exceptionservices/exceptionservicescommon.cs:143
[MonoDroid] at System.Runtime.CompilerServices.AsyncMethodBuilderCore.m__0 (System.Object state) [0x00000] in /Users/builder/data/lanes/3415/7db2aac3/source/mono/external/referencesource/mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs:1018
[MonoDroid] at Android.App.SyncContext+c__AnonStorey0.<>m__0 () [0x00000] in /Users/builder/data/lanes/3415/7db2aac3/source/monodroid/src/Mono.Android/src/Android.App/SyncContext.cs:18
[MonoDroid] at Java.Lang.Thread+RunnableImplementor.Run () [0x0000b] in /Users/builder/data/lanes/3415/7db2aac3/source/monodroid/src/Mono.Android/src/Java.Lang/Thread.cs:36
[MonoDroid] at Java.Lang.IRunnableInvoker.n_Run (IntPtr jnienv, IntPtr native__this) [0x00009] in /Users/builder/data/lanes/3415/7db2aac3/source/monodroid/src/Mono.Android/platforms/android-23/src/generated/Java.Lang.IRunnable.cs:81
[MonoDroid] at (wrapper dynamic-method) System.Object:0cc30f9c-df7f-48a0-bb6a-20e0768c4710 (intptr,intptr)

from commander.fody.

DamianReeves avatar DamianReeves commented on May 17, 2024

I'm hoping to brush the dust off this repo really soon. I have done ZERO Xamarin work so this will be interesting.

from commander.fody.

buzzware avatar buzzware commented on May 17, 2024

Thanks for any assistance - Xamarin is totally worth the effort if mobile dev is important to you.

I really think this is an important piece of the puzzle for making Xamarin MVVM sing. While older MVVM frameworks have alternative shortcuts, FreshMVVM is pretty nice but doesn't.

I tweeted this https://twitter.com/gazmcghee/status/706276600027852800

from commander.fody.

jasells avatar jasells commented on May 17, 2024

Related: not sure if this is a Xamarin bug, or something that Commander could adapt to support:

https://forums.xamarin.com/discussion/42525/icommand-canexecute-not-called

Summary: Xamarin's impl of Command doesn't spam CanExecute internally, it relies on the viewmodel code to call RaiseCanExecuteChanged() on demand. I don't see a way to do this in the current impl of Commander.

Would an additional attribute like [Commander.OnCommandCanExecuteChanged("CmdName")] be a possibility to add to enable this? Thinking as I type... this might not work. Not sure how to get a ref to the Command/DelegateCommand created by Commander in user code...

from commander.fody.

Related Issues (12)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.