MvxCachingFragmentStatePagerAdapter 传递参数给viewmodel

MvxCachingFragmentStatePagerAdapter pass parameter to viewmodel

当我为 viewpager 构建片段列表时,如何将参数传递给我的视图模型?

我尝试在 "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;

    }
}

谢谢沉约克。我找到了如何在我的 ViewModel 中获取数据: 只需在 RecyclerViewModel 的 ViewModel 中覆盖该方法:

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