2017-07-06 87 views
1

当我为viewpager构建片段列表时,如何将参数传递给我的viewmodel?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的视图模型是方法:

protected override void InitFromBundle(IMvxBundle parameters) 
    { 
     base.InitFromBundle(parameters); 
     Device = new Device() 
     { 
      Date = parameters.Data["Date"] 
     }; 
     RaisePropertyChanged(() => Device); 
    }