如何在WPF中导航到上一页但保留数据?
假设我的应用Page1
和Page2
中有2个页面。让我们说在第1页中,用户会写一些输入,例如他的名字,邮件等......
在用户填写第1页的详细信息后,他导航到第2页。
现在他想回到同一页1,如何用他的所有数据回到同一页面?
到目前为止,我在页面之间导航,创建了这样的新页面:
private void PreviousButton(object sender , RoutedEventArgs e)
{
Page1 p1 = new Page1();
NavigationService.Navigate(p1);
}
答案 0 :(得分:0)
您可以在Page2中保留Page1的引用:
Page1: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>
Page1 C#
public partial class Page1
{
public Page1()
{
InitializeComponent();
}
private void BtnNext_Click(object sender, RoutedEventArgs e)
{
var page2 = new Page2(this);
NavigationService.Navigate(page2);
}
}
Page 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>
Page 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);
}
}
答案 1 :(得分:0)
尝试在页面属性中设置KeepLive = true。检查它是否适合你。