在我从另一个视图模型收集数据的主视图模型中,我创建了两个或三个具有不同签名的公共 Init 方法。当我使用 ShowViewModel 从其他视图模型导航回基本视图模型时,我等待正确的 Init 方法将被执行,但这不会发生。关于此处的问候实用文档:
http://slodge.blogspot.ch/2013/03/v3-new-viewmodel-lifecycle.html
这应该可行:-/。
我将用一些代码来解释这一点。
我的主要视图模型是例如:
public class MainViewModel : MvxViewModel
{
MainViewModel() {}
public class ParameterFirst
{
public string Id { get; set; }
}
public class ParameterSecond
{
public string Id { get; set; }
}
public class ParameterSecond
{
public string Id { get; set; }
}
public class ParameterThird
{
public string Id { get; set; }
}
public void Init(ParameterFirst objFirst)
{
//do something
}
public void Init(ParameterSecond objSecond)
{
//do something
}
public void Init(ParameterThird objThird)
{
//do something
}
}
然后我将从另一个视图模型导航并等待正确的 Init 方法将被执行:
public class CollectData_ONE_ViewModel : MvxViewModel
{
CollectData_ONE_ViewModel() {}
public void DidWork()
{
//Hopefully the Init method with argument ParameterFirst should be called
base.ShowViewModel<MainViewModel>(new MainViewModel.ParameterFirst { Id = "11" });
}
}
接下来是第二个视图模型
public class CollectData_SECOND_ViewModel : MvxViewModel
{
CollectData_SECOND_ViewModel() {}
public void DidWork()
{
//Hopefully the Init method with argument ParameterFirst should be called
base.ShowViewModel<MainViewModel>(new MainViewModel.ParameterSecond { Id = "22" });
}
}
和第三个视图模型
public class CollectData_THIRD_ViewModel : MvxViewModel
{
CollectData_THIRD_ViewModel() {}
public void DidWork()
{
//Hopefully the Init method with argument ParameterFirst should be called
base.ShowViewModel<MainViewModel>(new MainViewModel.ParameterThird { Id = "33" });
}
}
在我的代码中,每次调用 First Init 方法时,我真的到了最后,没有更多的想法:) 这里有人遇到过同样的问题吗?或者这里有没有人有另一个想法以优雅的方式将数据收集到主视图模型?非常感谢您的阅读:)