首先要说的是,我只是一名初学UWP应用开发的大学生。文章内记录的只是十分简单的道理,写出来的目的是方便像我一样初学而没能轻易找到教程的新手。也可能是我使用的关键词不对,找了很久才找到方法。
教程的例子是我正在完成的课堂作业。希望在Newpage中将对象传给MainPage使用。一开始使用的方法是页面传值,调用Navigate这个函数传参(浅拷贝),再在目标页面接受(重写OnNavigatedTo函数),然而因为我的目标页面是Mainpage(打开应用即进入),初次打开页面时e.Parameter内的参数并非NewPage中传来,无法转换使用,会在运行时报错。如果添加检测e或者e.Parameter是否为空来判断是否运行使用该参数的代码,会发现这两个从刚开页面时就已经不为空。由于我学艺不精,也没能查到相关的解释,只能放弃页面传值的方法。如果可以的话还请各位赐教。
想学习页面传值的可以移步 Windows 10 UWP页面跳转and传值 学习。
开始:
①首先在App的Class中创建你希望全局调用的变量,注意不要写进其他函数内。

②当你在其他Page希望调用这个变量的时候,使用该方式调用:
(Application.Current as App).变量名
具体如图所示

同理在使用的页面的xaml也如此调用:

作业使用效果:

一开始是没有Item的(MainPage)

在NewPage中创建TaskItem的对象并添加进全局变量的list中

返回MainPage,已成功添加。
上面还运用了页面导航和数据绑定等,不在本文讨论范围所以略过。
关于数据绑定:本人认为 UWP入门(十二)--数据绑定用法 写得很好,例子也简单易懂。不过如果希望UI和后台数据同步更新需把List换成ObservableCollection。
在网上查资料的时候还看到可以通过创一个类专门保存变量的方法,我没有去尝试,应该是一个使数据更易管理的方法。
由于截图内的软件只是个人小作业,所以可能背景、选图等不太美观,请原谅。
上文引用的网址如有冒犯请告诉我,十分抱歉。
————————————————更新(2018.3.24)
文章开头提到的页面传值,e开始不为空是因为app.xaml.cs中的定义

理论上修改这里的参数就可以在后面成功判断e的值,不过本人尚未尝试。
这篇博客主要介绍了在UWP应用开发中如何在各页面间共享一个对象。作者通过在App的Class中创建全局变量,并在页面中使用(Application.Current as App).变量名的方式进行调用。同时提到了页面传值的问题,指出在MainPage作为初始页面时,使用Navigate函数传参的方法会遇到问题。文中推荐了其他资源学习页面传值和数据绑定,并提及使用ObservableCollection实现UI和后台数据同步更新。
1019

被折叠的 条评论
为什么被折叠?



