在MVVMCross MvX </t>中使用ShowViewModel <t>时未调用Init

时间:2014-04-02 12:20:37

标签: windows-phone-8 viewmodel mvvmcross

我在使用MVVMCross的Windows Phone应用程序中看到了一些奇怪。

我使用ShowViewModel<MyViewModel>();加载正在执行的命令的新视图。

我已将其更改为:

ShowViewModel<MyViewModel>(new { First = "Hello", Second = "World", Answer = 42 });

但是我没有在MyViewModel中调用Init,MyViewModel继承自另一个继承自MvxViewModel的类,我甚至改变了两个视图模型直接从MvxViewModel继承。

如果我使用:

Mvx.Resolve<IMvxViewModelLoader>().LoadViewModel(MvxViewModelRequest<MyViewModel>.GetDefaultRequest(), null);

初始化被调用,同样对于InitFromBundle,我传递了一个包含该测试对象的包,但我没有得到传递的值。

Init方法看起来像这样:

public void Init(string First, string Second, int Answer)

我完全困惑,设置,app.cs看起来都像导航示例,任何想法我可能忘记了什么?

Windows 8.1,VS 2013,Hot Tuna,Windows phone 8。


初始化方法:

public void Init()
{
}

public void Init(string First, string Second, int Answer)
{
    // use the values
    var meh = "";
    Mvx.Trace("Init called in {0}", GetType().Name);
}

protected override void InitFromBundle(IMvxBundle bundle)
{

}

1 个答案:

答案 0 :(得分:0)

您应该使用ShowViewModel<NameOfViewModelClass>(new { First = "Hello", Second = "World", Answer = 42 });代替