我的一个任务是将数据传递到我理解的另一个页面。但是当我回到页面时,如何才能保留数据?有人可以解释这是如何工作的。
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
解决方案相比,这具有缺点,因为它不容易在具有不同状态数据的导航堆栈中多次具有单个页面。