Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何返回到上一页,并保持上一页内容WPF_C#_Wpf_Xaml - Fatal编程技术网

C# 如何返回到上一页,并保持上一页内容WPF

C# 如何返回到上一页,并保持上一页内容WPF,c#,wpf,xaml,C#,Wpf,Xaml,如何返回上一页,并保留上一页内容 我已经找到了,但是他们使用了一个丑陋的微软默认导航栏,所以我想建立我自己设计的导航栏 我该怎么做?我的意思是我想从page1导航到page2,但当我从page2返回到page1时,我想返回到同一个page1,而不是它的新实例 现在我正在使用这个(糟糕的)方法: 如果您不想要框架的ui,那么不要使用页面,也不要将框架用作主机。 我从未见过商业团队在wpf中使用页面 相反,使用contentcontrol来托管您的内容。 用户控件而不是页面 实例化新的UserCon

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

我已经找到了,但是他们使用了一个丑陋的微软默认导航栏,所以我想建立我自己设计的导航栏

我该怎么做?我的意思是我想从page1导航到page2,但当我从page2返回到page1时,我想返回到同一个page1,而不是它的新实例

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


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

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

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

通常这是viewmodels,而不是任何UI对象,您需要将每个viewmodel数据模板化到一个视图中(viewmodel作为datacontext)。如上所述,保留对viewmodel的引用。 此viewmodel first导航对于子视图非常常见。
几乎所有的商业团队都使用MVVM

当你们说“保留上一页内容”时,你们的意思是说若有用户输入的任何数据,页面应该保留它们吗?
void PreviousButton(object sender , RoutedEventArgs e)
        {
            Page2 p2 = new Page2();
            NavigationService.Navigate(p2);
        }