最后我编写了一个helper类,它保存了所有视图模型的引用,以及您设置为
Root
. 然后我可以打电话给我的
PopToRoot
方法。
public class NavigationStack
{
private readonly List<IMvxViewModel> _stack;
public IMvxViewModel Root { get; set; }
public NavigationStack()
{
_stack = new List<IMvxViewModel>();
}
public void AddToStack(IMvxViewModel viewModel)
{
_stack.Add(viewModel);
}
public async Task PopToRoot(IMvxNavigationService navigationService)
{
if (Root == null)
{
throw new Exception("Can not pop to root because Root is null.");
}
else
{
_stack.Reverse();
foreach (var v in _stack)
{
if (v != Root)
{
await navigationService.Close(v);
}
else
{
break;
}
}
_stack.Clear();
}
}
}
IMvxViewModel
在我的应用程序中,一个接一个地关闭它们…有人知道这段代码是否会导致框架中的任何问题吗?