MvvmCross 删除返回堆栈 windows 应用程序

MvvmCross remove back stack windows app

如何清除 windows 应用程序(不是 windows phone)中的返回堆栈?
我正在使用 MvvmCross v3。放在哪里最合适?

我读过这个 post http://edsnider.net/2014/04/07/clearing-windows-phone-nav-back-stack-in-mvvmcross/ 他正在使用 CustomWP8ViewPresenter

    public override void ChangePresentation(MvxPresentationHint hint)
    {
        if (hint is ClearNavBackStackHint)
        {
            while (RootFrame.BackStack.Any())
            {
                RootFrame.RemoveBackEntry();
            }
        }

        base.ChangePresentation(hint);
    }

我的问题是,在 windows 应用程序中,我没有 RootFrame.RemoveBackEntry() 作为选项。

有什么想法吗?

评论中提到的 IMvxWindowsFrame 只是 Windows.UI.Xaml.Controls.Frame 实例的简单包装。您可以通过调用以下方式获取此包装实例:

_rootFrame = (Frame) rootFrame.UnderlyingControl;

然后你可以像这样删除你的backstack:

if (hint is ClearNavBackStackHint)
{
    if (_rootFrame.BackStackDepth > 0)
    {
        _rootFrame.BackStack.RemoveAt(_rootFrame.BackStack.Count - 1);
    }
}