首页 > 解决方案 > 重用具有多个片段的单个 ViewModel。MvvmCross Android

问题描述

我是 MvvmCross 的新手。我正在使用 Mvx v6.0.1 开发一个应用程序。我想使用片段(特别是 4 个片段或 4 个步骤)制作一种步进器,所有这些片段都嵌入到一个主要活动中。主活动布局有一个按钮,当我点击这些按钮片段时会切换到下一步。我为每个片段创建了一个视图模型,并为主要活动创建了一个视图模型。我遇到的问题是我需要从每个步骤中获取一些值并传递到下一步。我试图为每个视图(片段和活动)只共享一个视图模型。有什么办法可以做到这一点?

如果是,我如何区分每个步骤/片段以在它们之间导航?

我试图将相同的视图模型设置为 Activity 和片段:

   //Activity code
   public class AttendanceActivity : BaseActivity<AttendanceViewModel>
   {
       protected override int ActivityLayoutId => Resource.Layout.activity_attendance;

       //some logic
   }

   //Fragment code
   [MvxFragmentPresentation(ActivityHostViewModelType = typeof(AttendanceViewModel),
    FragmentContentId = Resource.Id.attendance_content_frame,
    AddToBackStack = true)]
    public class AttendanceFragmentSetpOne : BaseFragment<AttendanceViewModel>, IOnClickListener
    {
        protected override int FragmentLayoutId => Resource.Layout.fragment_attendance_step_one;

        //Some logic
    }

但是当我做这个时,应用程序永远不会从闪屏中通过。

我希望自己解释一下,有人帮助我解决这个“问题”。

提前致谢。

标签: androidandroid-fragmentsxamarin.androidmvvmcross

解决方案


推荐阅读