我在使用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)
{
}
答案 0 :(得分:0)
您应该使用ShowViewModel<NameOfViewModelClass>(new { First = "Hello", Second = "World", Answer = 42 });
代替