首页 > 解决方案 > 如何返回上一页,并保留上一页内容 WPF

问题描述

如何返回上一页,并保留上一页内容?

我找到了这个,但是他们使用微软的丑陋默认导航栏,因此我想构建自己设计的导航栏。

我怎样才能做到这一点?我的意思是我想从 page1 导航到 page2,但是当我从 page2 返回到 page1 时,我想返回同一个 page1 而不是它的新实例。

现在我正在使用这个(坏的)方法:

void PreviousButton(object sender , RoutedEventArgs e)
        {
            Page2 p2 = new Page2();
            NavigationService.Navigate(p2);
        }

标签: c#wpfxaml

解决方案


如果您不想要框架的 ui,则不要使用页面,也不要使用框架作为主机。
我从未见过商业团队在 wpf 中使用页面。

相反,使用内容控件来托管您的内容。
用户控件而不是 Pages。

当您实例化一个新的 UserControl 时,您可以将它添加到 List 并保留对该实例的引用。保持当前索引。导航“后退”将使用前一个索引视图,转发下一个。

通常这将是视图模型而不是任何 UI 对象,并且您会将每个视图模型数据模板化到一个视图中(将视图模型作为 datacontext )。保留对上述视图模型的引用。这种视图模型第一个导航对于子视图相当常见。
几乎所有的商业团队都使用 MVVM。


推荐阅读