我在 Windows 8 Style App 中创建了一个搜索页面。我已经实现了 ISupportIncrementalLoading 并且当用户滚动分页时效果很好。
我遇到的问题是当用户进行第二次搜索时。我显然不知道如何让 LoadMoreItemsAsync 再次触发。我尝试了以下方法:
1)清除Observable并支持ISupportIncrementalLoading的底层集合。这会清除屏幕上的所有项目,因此我知道它已正确绑定。
2) 完全替换实现 ISupportIncrementalLoading 并引发 INotifyPropertyChanged 的底层集合实例,以便视图知道属性已更改。这也会清除屏幕上的所有项目。
但是,LoadMoreItemsAsync 不想在清除或替换基础集合实例后触发。我的预感是 UI 认为它不需要再加载了,但是因为我已经清除了它应该想要加载更多的所有项目。
我已验证 HasMoreItems 属性设置为 true。
如果它有帮助,遗憾的是,如果您从 Windows 8 商店下载 FlixPicks,您会在生产中看到错误。重现的步骤是:
- 使用 windows 搜索合同进行搜索
- 通知分页工作 从搜索页面
- 再次搜索。
- 请注意,所有项目都已清除。(此时 LoadMoreItemsAsync 没有触发)
感谢您提供的任何建议!