C# 如何在WPF中导航到上一页,但保留数据?
如何在WPF中导航到上一页,但保留数据 假设我的应用程序C# 如何在WPF中导航到上一页,但保留数据?,c#,wpf,C#,Wpf,如何在WPF中导航到上一页,但保留数据 假设我的应用程序Page1和Page2中有两个页面。假设在第1页,用户写了一些输入,比如他的名字,邮件等等 用户在第1页填写了详细信息后,他导航到第2页 现在他想返回到同一页1,如何返回到同一页1和他的所有数据 到目前为止,我一直在页面之间导航,创建一个新页面,如下所示: private void PreviousButton(object sender , RoutedEventArgs e) { Page1 p1 = n
Page1
和Page2
中有两个页面。假设在第1页,用户写了一些输入,比如他的名字,邮件等等
用户在第1页填写了详细信息后,他导航到第2页
现在他想返回到同一页1,如何返回到同一页1和他的所有数据
到目前为止,我一直在页面之间导航,创建一个新页面,如下所示:
private void PreviousButton(object sender , RoutedEventArgs e)
{
Page1 p1 = new Page1();
NavigationService.Navigate(p1);
}
您可以在第2页中保留对第1页的引用: 第1页:Xaml
<Grid>
<StackPanel>
<TextBox x:Name="TxbName" Margin="10"/>
<TextBox x:Name="TxbEmail" Margin="10"/>
<Button x:Name="BtnNext" Content="Next Page" Click="BtnNext_Click"/>
</StackPanel>
</Grid>
第2页Xaml:
<Grid>
<StackPanel>
<Label x:Name="LblName" Margin="10"/>
<Label x:Name="LblEmail" Margin="10"/>
<Button x:Name="BtnPrevious" Content="Previous Page" Click="BtnPrevious_Click"/>
</StackPanel>
</Grid>
public partial class Page2
{
private Page1 _page1;
public Page2(Page1 page1)
{
InitializeComponent();
_page1 = page1;
}
private void BtnPrevious_Click(object sender, RoutedEventArgs e)
{
NavigationService.Navigate(_page1);
}
}
尝试在页面属性中设置KeepLive=true。检查它是否适合您。您正在创建上一页的新实例。请尝试保留对该页的引用。如果您发布更多的逻辑,特别是导航到此逻辑的部分,那么我们可以帮助您了解MVVM模式。您可以将数据保存在视图模型中。在MVVM中,通常视图模型与其关联的视图一起处理,因此数据存储/检索的正确位置是与UI无关的程序模型/业务逻辑。
public partial class Page2
{
private Page1 _page1;
public Page2(Page1 page1)
{
InitializeComponent();
_page1 = page1;
}
private void BtnPrevious_Click(object sender, RoutedEventArgs e)
{
NavigationService.Navigate(_page1);
}
}