WinRT下GridView/ListView随滚动条自动加载
实现自动加载的功能其实不难,去搜索ISupportIncrementalLoading接口的例子有一大堆,这里就不详细说明了。
但是其中有一个问题:第一次将ISupportIncrementalLoading对象绑定到GridView/ListView的ItemsSource,一切正常,但是类似搜索的功能,执行第二次搜索的时候,新建一个ISupportIncrementalLoading对象,然后重新绑定到GridView/ListView的ItemsSource却不起作用了,结果是GridView/ListView中一个Item都不加载。
这个问题微软开发团队已经证实存在,是产品的bug,大家有兴趣可以去看看这个帖子http://social.msdn.microsoft.com/Forums/en-US/winappswithcsharp/thread/1895d485-4dce-4f7c-8318-6bb602ca44b3/
目前这个问题依然存在,不知道在将来的版本会不会修好,因此有了这个workaround方法,
在重新绑定之前执行下面几行代码:
var gridTemplate = gridView.Template; gridView.Template = null; gridView.Template = gridTemplate;
不知道是哪位大师发现的方法,本人试过,非常有效。