如何返回此页面的先前状态

时间:2018-11-27 06:46:56

标签: c# uwp

我有应用程序UWP

image

左屏幕是SplitView.Pane,其中包含列表内容。

右屏幕是SplitView.Content,包含内容的详细信息。

<SplitView.Content>
    <Frame x:Name="frMainFrame">
        <Frame.ContentTransitions>
            <TransitionCollection>
                <NavigationThemeTransition />
            </TransitionCollection>
        </Frame.ContentTransitions>
     </Frame>
</SplitView.Content>

当我在SplitView.pane上单击标题时,frMainFrame将导航到参数为“ id”的ListThread页面

frMainFrame.Navigate(typeof(ListThread), id);

方法已处理后退按钮

private void OnBackRequested(object sender, BackRequestedEventArgs e)
{           
    if (frMainFrame.CanGoBack)
    {
        e.Handled = true;
        frMainFrame.GoBack(new SuppressNavigationTransitionInfo());
    }
    else
    {
        DialogResult.AskToExitApp();
    }
}

在ListThread页面上,

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    if (e.NavigationMode != NavigationMode.Back)
    {
        idBox = (int)e.Parameter;
        Idpage = 1;
        AnalyzeUrlBox();
        AnalyzeHtml();
    }
}

并在构造方法上设置NavigatitonCacheMode是必需的:

this.NavigationCacheMode = NavigationCacheMode.Required;

现在,

  1. 我单击Modding并等待内容加载完成。(frMainFrame将导航到参数ID = 2的ListThread)
  2. 我单击AMD并等待内容加载完成。(frMainFrame将导航到参数ID = 3的ListThread)
  3. 我单击左上角的“返回”按钮。

    • 要求:frMainFrame导航显示具有参数ID = 2的ListThread,恢复导航之前的所有状态

    • 实际:frMainFrame卡在参数ID = 3的ListThread上

我认为,问题出在NavigationCacheMode上。如何与Require一样执行?

谢谢!

0 个答案:

没有答案