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

时间:2018-03-05 14:40:30

标签: c# uwp

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

 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);
    }
}

1 个答案:

答案 0 :(得分:0)

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

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