【问题标题】:MvvmCross remove back stack windows appMvvmCross 删除回栈窗口应用程序
【发布时间】:2015-08-10 13:26:09
【问题描述】:

如何清除 Windows 应用程序(不是 Windows Phone)中的后台堆栈?
我正在使用 MvvmCross v3。放在哪里最正确?

我已经阅读了这篇文章 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() 作为选项。

有什么想法吗?

【问题讨论】:

标签: windows stack mvvmcross back


【解决方案1】:

您在 cmets 中提到的 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);
    }
}

【讨论】:

  • 谢谢!我需要框架,但不知道它是它的 UnderlyingControl :)
猜你喜欢
  • 2022-08-22
  • 1970-01-01
  • 1970-01-01
  • 2021-09-08
  • 2013-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多