我有了打开另一视图的命令的视图模型:
public ICommand OpenAnotherViewCommand
{
get
{
return new MvxCommand(() => ShowViewModel<AnotherViewModel>());
}
}
到现在为止还挺好。 然后在AnotherViewModel
我希望能够回到第一个视图模型。 我原本是这样的:
public ICommand ReturnCommand
{
get
{
Dictionary<string, string> parameters = new Dictionary<string, string>();
// Add some stuff from this model to pass to the first view model
return new MvxCommand(() => {
ShowViewModel<FirstViewModel>(parameters);
}
}
}
我添加了一个InitFromBundle
我的第一个视图模型,这工作太。 然而,后来我意识到,我原来的第一个视图模型仍然存在(我注意到这一点,因为这似乎是射击多次,一些事件处理的!)。 我ShowViewModel
创建了一个新的FirstViewModel
,但旧的从未破坏(现在看来真的很明显)。 所以视图的堆栈是现在first -> another -> first
,当它应该是只是first
。
所以,面对后在手掌触摸我代替我的ShowViewModel
在ReturnCommand
与Close(this)
,现在我已经固定的导航问题,我没有产生不必要的视图模型的一长排。 不过,我已经失去了是从传回数据的能力AnotherViewModel
到第一个。
那么,如何将数据传递回我的第一个视图模型的时候,第二个被关闭?