Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVVM交叉传递参数_C#_Mvvm_Viewmodel_Mvvmcross - Fatal编程技术网

C# MVVM交叉传递参数

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>() {

我试图在MVVM交叉中跨视图模型传递对象。下面是我要传递的VM的代码:

    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
。我不知道这是怎么被调用的,也不知道为什么被调用的,但确实如此。它没有做的是填充参数

因此,我的问题是:

  • MVVM框架调用
    init
    的方式和原因(假设这是正确的方法)
  • 我应该使用
    InitFromBundle
    吗?如果不是,那是为了什么
  • 为什么我的代码不通过对象字典传递到Init,我如何才能做到这一点

  • MvvmCross依赖于底层的平台导航机制,例如android上的意图和windows phone上的URL

    因此,它不支持按对象导航-仅支持按少数小型可序列化类型导航-有关更多信息,请参阅

    如果您确实希望通过更复杂的可序列化对象进行导航,则可以轻松扩展视图模型类以支持此操作-请参阅