Xamarin Android在视图之间传递数据

时间:2017-09-30 10:12:10

标签: android xamarin.android mvvmcross

我是Xamarin Android的新手。我期待创建一个多步骤注册表单,即向导过程。 我正在寻找一些可以保存每个步骤状态的方法的最佳实践,以便建立模型然后提交模型(Builder设计模式)。

我不确定如何在转到另一个视图时保存状态。从研究中,我是否会通过调用PutExtra传递数据来传递视图模型作为意图的一部分?
我不确定这样做的好方法是什么。我正在使用MVVMCross来构建viewmodel。我希望社区可以帮助我找到正确的方向

1 个答案:

答案 0 :(得分:1)

在MvvmCross中,您不能在视图之间传递数据,但所有导航都在ViewModel之间完成。有关此内容的详细文档可在以下网址找到:https://www.mvvmcross.com/documentation/fundamentals/navigation

一个例子是:

public class MyViewModel : MvxViewModel
{
    private readonly IMvxNavigationService _navigationService;
    public MyViewModel(IMvxNavigationService navigationService)
    {
        _navigationService = navigationService;
    }

    public override void Prepare()
    {
        //Do anything before navigating to the view
    }

    public async Task SomeMethod()
    {
        await _navigationService.Navigate<NextViewModel, MyObject>(new MyObject());
    }
}

public class NextViewModel : MvxViewModel<MyObject>
{
    public override void Prepare(MyObject parameter)
    {
        //Do anything before navigating to the view
        //Save the parameter to a property if you want to use it later
    }

    public override async Task Initialize()
    {
        //Do heavy work and data loading here
    }
}