导航到新的ViewModel期间,MvxBundle为空

时间:2018-09-06 13:41:04

标签: android xamarin mvvmcross

我已将应用程序从MvvmCross 5.x迁移到MvvmCross 6.1.2,现在我在导航期间无法传输捆绑软件。

IMvxNavigationService已初始化,并通过构造函数传递给VM。

现在,我尝试在下一次调用时将MvxBundle传递到MainViewModel

NavigationService.Navigate<MainViewModel>(new MvxBundle(new Dictionary<string, string>()
{
    {"key1","value1" },
    {"key2","value2" },
}));

MainViewModel中,我覆盖InitFromBundle

protected override void InitFromBundle(IMvxBundle parameters)
{
    base.InitFromBundle(parameters);
}

但是parameters为空。 parameters.Data不包含我的Dictionary

我做错什么了吗?

1 个答案:

答案 0 :(得分:1)

用于导航

NavigationService.Navigate<ViewModel, Parameter type>(parapeter)

参数可以是任何引用类型。例如

await NavigationService.Navigate<MainViewModel, Dictionary<String, String>>(new Dictionary<String, String> {{"", ""}});

要在其上导航的ViewModel必须继承MvxViewModel<MyObject>并覆盖Prepare方法

public class MainViewModel
{
    public override void Prepare(Dictionary<String, String> parameter)
    {

    }
}