Comments (4)
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.
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.
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.
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)
- Add a sample to FodyAddinSamples HOT 2
- Make the API more concise
- Package Manager can't find the package HOT 1
- Update to Fody Version 2 HOT 4
- Support for Portable Libraries HOT 1
- Error in Portable Libraries HOT 6
- Does not work with WP nad WinRT HOT 7
- Does not work with WP
- Add support for implementations of DelegateCommand which exist outside the assembly
- Does not work when commands have the same name. HOT 3
- Command not initialized in Release build HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from commander.fody.