so I have an activity that has a tabbed page with 2 fragments.

 public class RecipeDetailActivity : BaseFragmentActivity<RecipeDetailViewModel>{protected override void OnCreate(Bundle savedInstanceState){base.OnCreate(savedInstanceState);SetContentView(Resource.Layout.RecipeDetailView);AttachActionBar();SupportActionBar.SetDisplayHomeAsUpEnabled(true);SupportActionBar.Title="Recipe details";var viewPager=FindViewById<ViewPager>(Resource.Id.main_view_pager);if (viewPager !=null){var fragments=new List<MvxViewPagerFragmentInfo>();fragments.Add(new MvxViewPagerFragmentInfo("Ingrediente", typeof(RecipeFlavoursFragment), typeof(RecipeFlavoursViewModel)));fragments.Add(new MvxViewPagerFragmentInfo("Flavours", typeof(RecipeIngridientsFragment), typeof(RecipeIngridientsViewModel)));viewPager.Adapter=new MvxFragmentPagerAdapter(this, SupportFragmentManager, fragments);viewPager.Adapter=new MvxFragmentPagerAdapter(this, SupportFragmentManager, fragments);var tabLayout=FindViewById<TabLayout>(Resource.Id.main_tablayout);tabLayout.SetupWithViewPager(viewPager);}}}

I show this page using the following code.

 private void SelectRecipe(RecipeModel recipe){var recipeJson=JsonConvert.SerializeObject(recipe);ShowViewModel<RecipeDetailViewModel>(new { recipe=recipeJson });}

Now what I would like is to pass some data to child view models. RecipeFlavoursViewModelRecipeIngridientsViewModel

I've tried so far : Using parameterValueObject

 fragments.Add(new MvxViewPagerFragmentInfo("Ingrediente", typeof(RecipeFlavoursFragment), typeof(RecipeFlavoursViewModel), new { recipe=ViewModel.Recipe }));

Using IMvxBundle

In RecipeDetailViewModel

 protected override void SaveStateToBundle(IMvxBundle bundle){bundle.Data["Recipe"]=JsonConvert.SerializeObject(Recipe);base.SaveStateToBundle(bundle);}

In RecipeIngridientsViewModel

protected override void InitFromBundle(IMvxBundle parameters){base.InitFromBundle(parameters);if (parameters.Data.Count !=0){Recipe=JsonConvert.DeserializeObject<RecipeModel>(parameters.Data["recipe"]);}}

None of them have worked so far. Any ideas what am I doing wrong? Do I have to use the navigation service from MvvmCross 5 to be able to use InitFromBundle and SaveStateToBundle.

InitFromBundle it's called everytime my fragments is displayed, but SaveStateToBundle from RecipeDetailViewModel never gets called.

share|improve this question

This question has an open bounty worth +100reputation from CiucaS ending in 5 days.

Looking for an answer drawing from credible and/or official sources.

    Your Answer

     
    discard

    By posting your answer, you agree to the privacy policy and terms of service.

    Browse other questions tagged or ask your own question.