C# MVVM交叉传递参数
我试图在MVVM交叉中跨视图模型传递对象。下面是我要传递的VM的代码:C# MVVM交叉传递参数,c#,mvvm,viewmodel,mvvmcross,C#,Mvvm,Viewmodel,Mvvmcross,我试图在MVVM交叉中跨视图模型传递对象。下面是我要传递的VM的代码: private void CallVM2() { MyObj newObj = new Myobj(); IMyService myService = new MyService(); Dictionary<string, object> p = new Dictionary<string, object>() {
private void CallVM2()
{
MyObj newObj = new Myobj();
IMyService myService = new MyService();
Dictionary<string, object> p = new Dictionary<string, object>()
{
{"MyObj", newObj},
{"MyService", myService}
};
ShowViewModel<ViewModel2>(p);
}
private void CallVM2()
{
MyObj newObj=新MyObj();
IMyService myService=newmyservice();
字典p=新字典()
{
{“MyObj”,newObj},
{“MyService”,MyService}
};
ShowViewModel(p);
}
下面是ViewModel2的代码:
public void Init(Dictionary<string, object> p)
{
}
公共void Init(字典p)
{
}
好的-所以我也尝试了InitFromBundle
,但似乎我需要Init
。我不知道这是怎么被调用的,也不知道为什么被调用的,但确实如此。它没有做的是填充参数
因此,我的问题是:
init
的方式和原因(假设这是正确的方法)InitFromBundle
吗?如果不是,那是为了什么MvvmCross依赖于底层的平台导航机制,例如android上的意图和windows phone上的URL 因此,它不支持按对象导航-仅支持按少数小型可序列化类型导航-有关更多信息,请参阅 如果您确实希望通过更复杂的可序列化对象进行导航,则可以轻松扩展视图模型类以支持此操作-请参阅