c# - 如何在跳转列表中获取之前添加的项目
问题描述
我现在正在研究跳转列表功能并尝试在我的 WPF/C# 项目中实现它。
从 MSDN 链接执行示例时,我观察到以下问题:https://docs.microsoft.com/en-us/dotnet/api/system.windows.shell.jumplist?view=net-5.0:
1)。JumpList.GetJumpList(App.Current) 总是返回一个新创建的。
也就是说,程序重启后所有添加的项都丢失了;
2)。奇怪的是:如果我们右键单击任务栏上的程序,添加的项目已经在那里了。但是,当我们通过点击下面的按钮添加一项后,添加的项就消失了;
<Button Content="Add Task to JumpList" Click="AddTask" />
我认为根本原因在于#1),即虽然我们可以在#2) 中看到添加的项目,但它们并没有出现在 JumpList.GetJumpList 的返回值中。结果,在我们添加一个之后,在之前的启动中添加的所有这些项目都丢失了。
为了确认#1),我通过删除 App.xaml 中的 <JumpList.JumpList> 部分进行了测试,发现每次启动程序时,JumpList.GetJumpList 总是返回 null。
我的问题是: 我们如何才能在代码中获得这些添加的项目?即,我想获得#2) 中显示的那些项目。
我确实搜索了很多,但未能获得有用的信息来解决我的问题。看起来有类似的问题,但在没有正确答案的情况下仍然保持开放。例如:如何从 JumpList 中获取最近的项目?
事实上,我有一个最终解决方案:将添加的项目保存在配置/首选项文件中,如果项目从代码逻辑中删除,则更新文件。如果没有其他解决方案,这是我必须采取的最后一步。
如果你有任何提示,请给我。
非常感谢!
解决方案
推荐阅读
- javascript - 使用 Spread 解构对象
- django - 通过 python 使用 Google API 的慢性超时问题?
- php - laravel 更新与模型的一对一关系
- c++ - 使用 rdtsc 做基准测试有什么缺点?
- vba - 将 wdColor 值存储为变量
- ionic-framework - Ionic 4 运行浏览器无法加载资源
- java - 如何在JAVA中生成强制一个特殊字符,一个大写,一个小写的密码?
- machine-learning - 如何在 Pyspark 中获得直线线性回归结果?
- batch-file - 在批处理程序中使用 # 和 SET
- ruby - Ruby/Minitest:我怎样才能为除一个之外的所有测试运行#setup?