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);
}
}
如何清除 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);
}
}