Reputation: 914
Writing a sample app where I have a list of items, and then when the user clicks on a item - it uses ShowViewModel to display a detail page about the item. However, when call the method that calls ShowViewModel it crashes with the following error: "Could not resolve type with token 01000037 (from typeref, class/assembly MvvmCross.Core.ViewModels.MvxRequestedBy..."
The code for the sample app is here: https://github.com/gregmercer/FruitsAndVeggies
The full error message is here: https://github.com/gregmercer/FruitsAndVeggies/blob/master/error.txt
And the line that cause the error (when uncommented) is found here: https://github.com/gregmercer/FruitsAndVeggies/blob/master/FruitsAndVeggies.Core/ViewModels/FruitsViewModel.cs#L58
Upvotes: 0
Views: 170
Reputation: 24460
The problem is that you are mixing MvvmCross versions.
So if you look at your packages.config for your core:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="MvvmCross" version="4.4.0" targetFramework="portable45-net45+win8+wpa81" />
<package id="MvvmCross.Binding" version="4.4.0" targetFramework="portable45-net45+win8+wpa81" />
<package id="MvvmCross.Core" version="4.4.0" targetFramework="portable45-net45+win8+wpa81" />
<package id="MvvmCross.Platform" version="4.4.0" targetFramework="portable45-net45+win8+wpa81" />
</packages>
These are version 4.4.0
Then if we look at the Droid project:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="MvvmCross" version="5.0.2" targetFramework="monoandroid70" />
<package id="MvvmCross.Binding" version="5.0.2" targetFramework="monoandroid70" />
<package id="MvvmCross.Core" version="5.0.2" targetFramework="monoandroid70" />
<package id="MvvmCross.Droid.Shared" version="5.0.2" targetFramework="monoandroid70" />
<package id="MvvmCross.Droid.Support.Core.UI" version="5.0.2" targetFramework="monoandroid70" />
<package id="MvvmCross.Droid.Support.Fragment" version="5.0.2" targetFramework="monoandroid70" />
<package id="MvvmCross.Droid.Support.V7.AppCompat" version="5.0.2" targetFramework="monoandroid70" />
<package id="MvvmCross.Droid.Support.V7.RecyclerView" version="5.0.2" targetFramework="monoandroid70" />
<package id="MvvmCross.Platform" version="5.0.2" targetFramework="monoandroid70" />
<package id="Xamarin.Android.Support.Animated.Vector.Drawable" version="25.3.1" targetFramework="monoandroid70" />
<package id="Xamarin.Android.Support.Annotations" version="25.3.1" targetFramework="monoandroid70" />
<package id="Xamarin.Android.Support.Compat" version="25.3.1" targetFramework="monoandroid70" />
<package id="Xamarin.Android.Support.Core.UI" version="25.3.1" targetFramework="monoandroid70" />
<package id="Xamarin.Android.Support.Core.Utils" version="25.3.1" targetFramework="monoandroid70" />
<package id="Xamarin.Android.Support.Design" version="25.3.1" targetFramework="monoandroid70" />
<package id="Xamarin.Android.Support.Fragment" version="25.3.1" targetFramework="monoandroid70" />
<package id="Xamarin.Android.Support.Media.Compat" version="25.3.1" targetFramework="monoandroid70" />
<package id="Xamarin.Android.Support.Transition" version="25.3.1" targetFramework="monoandroid70" />
<package id="Xamarin.Android.Support.v7.AppCompat" version="25.3.1" targetFramework="monoandroid70" />
<package id="Xamarin.Android.Support.v7.RecyclerView" version="25.3.1" targetFramework="monoandroid70" />
<package id="Xamarin.Android.Support.Vector.Drawable" version="25.3.1" targetFramework="monoandroid70" />
<package id="Xamarin.Build.Download" version="0.4.3" targetFramework="monoandroid70" />
</packages>
These are version 5.0.2, which is newer than 4.4.0.
Consolidate your packages and use same versions across all your projects.
Upvotes: 2
Reputation: 3559
To pass parameters you either need to inherit from a generic MvxViewModel< Parameters>
or update to MvvmCross 5.0 which has improved support for passing objects without trouble.
Look at this sample as a reference: https://github.com/MvvmCross/MvvmCross/tree/develop/TestProjects/Navigation
Upvotes: -1