生命周期管理

使用BasicPage
页面间传递复杂对象:

private void go2_Click(object sender, RoutedEventArgs e)
        {
            student stu = new student() { id = 1, name = "ggz" }; //类必须定义为public
            var serializer = new DataContractSerializer(typeof(student));
            MemoryStream stream = new MemoryStream();

            serializer.WriteObject(stream, stu);
            byte[] barray = stream.ToArray();
            string param = Encoding.UTF8.GetString(barray,0, barray.Length);
            System.Diagnostics.Debug.WriteLine(param);
            Frame.Navigate(typeof(BasicPage1),param);
        }


protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            byte[] buffer = Encoding.UTF8.GetBytes((string)e.Parameter);
            MemoryStream stream = new MemoryStream(buffer);
            DataContractSerializer serializer = new DataContractSerializer(typeof(student));
            student stu= serializer.ReadObject(stream) as student;

            navigationHelper.OnNavigatedTo(e);
            if (stu != null)
                this.textBox1.Text = stu.name;
        }

步骤:
App:
OnLaunched中添加:

 rootFrame = new Frame();

                App12.Common.SuspensionManager.RegisterFrame(rootFrame, "appFrame");//第一句注册

                // Set the default language
                rootFrame.Language = Windows.Globalization.ApplicationLanguages.Languages[0];

                rootFrame.NavigationFailed += OnNavigationFailed;



                if (e.PreviousExecutionState == ApplicationExecutionState.Terminated)
                {
                    //TODO: Load state from previously suspended application
                    await App12.Common.SuspensionManager.RestoreAsync();//第二句还原
                }

                // Place the frame in the current Window
                Window.Current.Content = rootFrame;

OnSuspending中添加:

await App12.Common.SuspensionManager.SaveAsync();

MainPage:


private void navigationHelper_LoadState(object sender, LoadStateEventArgs e)
        {
            if (e.PageState != null && e.PageState.ContainsKey("input"))
                put.Text = e.PageState["input"].ToString();
        }

private void navigationHelper_SaveState(object sender, SaveStateEventArgs e)
        {
            e.PageState["input"] = put.Text;

        }

使用本地设置:

保存:
 ApplicationDataContainer localSettings = ApplicationData.Current.LocalSettings;

//ApplicationDataContainer 存储数据的容器  ApplicationData 提供对应用程序数据存储区的访问

// localSettings 获取本地应用程序数据存储区中的应用程序设置容器。
localSettings.Values["value"] = nameinput.Text;

//将 nameinput.Text的内容以键值对的形式保存到ApplicationDataContainer

恢复:
ApplicationDataContainer localSettings = ApplicationData.Current.LocalSettings;
 if(localSettings.Values.ContainsKey(“value”))
 {
nameinput.Text = localSettings.Values["value"].ToString();

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值