如何在 WPF 中导航到上一页但保留数据?
假设我的应用程序中有 2 个页面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>
第 1 页 C#
public partial class Page1
{
public Page1()
{
InitializeComponent();
}
private void BtnNext_Click(object sender, RoutedEventArgs e)
{
var page2 = new Page2(this);
NavigationService.Navigate(page2);
}
}
第 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>
第 2 页 C#:
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。检查它是否适合您。