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



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

假设我的应用程序中有 2 个页面Page1Page2. 假设在第 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。检查它是否适合您。

最新更新