C#在页面之间导航而不丢失数据
我的任务之一是将数据传递到我理解的另一个页面。但是,当我返回页面时,如何让数据保持不变?有人能解释一下这是怎么回事吗C#在页面之间导航而不丢失数据,c#,uwp,C#,Uwp,我的任务之一是将数据传递到我理解的另一个页面。但是,当我返回页面时,如何让数据保持不变?有人能解释一下这是怎么回事吗 public sealed partial class MainPage : Page { string userName; public MainPage() { this.InitializeComponent(); } private void btnPage2_Click(object s
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);
}
}
我已经回答了一个类似的问题。这里的答案也适用于这个问题,但是在您的案例中,您特别关注问题中的数据部分,因此这里您应该特别注意答案的第二部分-使用比页面本身寿命更长的ViewModel
,这将是最有益的解决方案。但是,使用NavigationCacheMode
也就足够了,因为页面类本身及其字段将被保留
这里还有第三个选项可用,即对要保留的字段使用
static
,或者创建一个static
或将保存数据的单例类。但是,与ViewModel
解决方案相比,这有一个缺点,因为它不允许在导航堆栈中多次使用具有不同状态数据的单个页面。我们也可以查看页面类以了解变量是什么吗?