2017-07-06 7 views
1

ビューページのフラグメントのリストを作成するときに、どのようにパラメータをビューモデルに渡すことができますか?MvxCachingFragmentStatePagerAdapterパラメータをviewmodelに渡す

"MvxCachingFragmentStatePagerAdapter.FragmentInfo"で "parametervaluesobject"を使用しようとしましたが、動作しないようです。

[MvxFragment(typeof(MainViewModel), Resource.Id.content_frame, true)] 
[Register("mvvmcrosslearning.droid.fragments.DateFragment")] 
public class DateFragment : BaseFragment<DateViewModel> 
{ 
    protected override int FragmentId => Resource.Layout.fragment_date; 

    public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
    { 
     var view = base.OnCreateView(inflater, container, savedInstanceState); 

     var viewPager = view.FindViewById<ViewPager>(Resource.Id.viewpager); 
     if (viewPager != null) 
     { 
      var fragments = new List<MvxCachingFragmentStatePagerAdapter.FragmentInfo>(); 
      for (int i = 0; i < 3; i++) 
       fragments.Add(new MvxCachingFragmentStatePagerAdapter.FragmentInfo($"Date {i}", 
        typeof(RecyclerViewFragment), typeof(RecyclerViewModel), new Device() { Date = $"Date {i}" })); 


      viewPager.Adapter = new MvxCachingFragmentStatePagerAdapter(Activity,ChildFragmentManager,fragments); 
      viewPager.OffscreenPageLimit = 1; 
     } 

     var tabLayout = view.FindViewById<TabLayout>(Resource.Id.tabs); 
     tabLayout.SetupWithViewPager(viewPager); 

     return view; 

    } 
} 
+1

あなたはこれを読むことができる:https://www.mvvmcross.com/documentation/fundamentals/app-lifecycle# 1-建設 –

答えて

1

ありがとうございました。 ちょうどRecyclerViewModelのViewModelにでそのメソッドをオーバーライドします:私は私のViewModelのデータを取得する方法を見つけ

protected override void InitFromBundle(IMvxBundle parameters) 
    { 
     base.InitFromBundle(parameters); 
     Device = new Device() 
     { 
      Date = parameters.Data["Date"] 
     }; 
     RaisePropertyChanged(() => Device); 
    } 
関連する問題