如何导航到WPF中的上一页但保留数据?

时间:2018-04-11 06:02:36

标签: c# wpf

如何在WPF中导航到上一页但保留数据?

假设我的应用Page1Page2中有2个页面。让我们说在第1页中,用户会写一些输入,例如他的名字,邮件等......

在用户填写第1页的详细信息后,他导航到第2页。

现在他想回到同一页1,如何用他的所有数据回到同一页面?

到目前为止,我在页面之间导航,创建了这样的新页面:

    private void PreviousButton(object sender , RoutedEventArgs e)
    {
        Page1 p1 = new Page1();
        NavigationService.Navigate(p1);
    }

2 个答案:

答案 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。检查它是否适合你。