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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#在不丢失数据的情况下在页面之间导航相关的知识,希望对你有一定的参考价值。

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

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

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

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

以上是关于C#在不丢失数据的情况下在页面之间导航的主要内容,如果未能解决你的问题,请参考以下文章

Android Reorder Fragment Backstack

如何在不使用 React Native 中的堆栈导航器的情况下重定向到页面?

如何在不换行的情况下在引导列之间添加边距[重复]

如何在不重复的情况下在进程之间共享大量数据? (IPC)

如何在不刷新页面的情况下在屏幕上显示新记录?

Vim ctags:我们可以在不关闭 taglist 窗口的情况下在 taglist 窗口和源代码窗口之间切换焦点吗?