我已将应用程序从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
。
我做错什么了吗?
答案 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)
{
}
}