C#在不丢失数据的情况下在页面之间导航

问题描述 投票:-2回答:1

我的一个任务是将数据传递到我理解的另一个页面。但是当我回到页面时,如何才能保留数据?有人可以解释这是如何工作的。

 public sealed partial class MainPage : Page
    {
       string userName;
       public MainPage()
     {

        this.InitializeComponent();
    }

    private void btnPage2_Click(object sender, RoutedEventArgs e)
    {
        Frame.Navigate(typeof(Page2) ,  userName);
    }

    private void btnName_Click(object sender, RoutedEventArgs e)
    {
        userName = Convert.ToString(txtname.Text);
    }
}
c# uwp
1个回答
0
投票

我已经回答了类似的question here。答案也适用于这个问题,但是在你的情况下你特别关注有问题的数据部分,所以在这里你应该特别注意答案的第二部分 - 使用一个比页面本身更长的ViewModel是最有益的解决方案。但是,使用NavigationCacheMode也足够了,因为页面类本身及其字段将被保留。

这里有第三个选项,它使用static来保存你想要保留的字段,或创建一个保存数据的static或singleton类。然而,与ViewModel解决方案相比,这具有缺点,因为它不容易在具有不同状态数据的导航堆栈中多次具有单个页面。

© www.soinside.com 2019 - 2024. All rights reserved.