在WinJS中,获取ListView对象中项目数的唯一方法是使用方法getCount()
。为什么IListDataAdapter.getCount异步
但是这种方法是异步的。
这使得在for循环中使用它非常困难,例如当需要遍历列表项时。
var listView = document.getElementById("listView").winControl;
listView.itemDataSource.getCount().done(
function (numItems) {
for (var i = 0; i < numItems; i++) {
//do your stuff here
}
});
如果我把这个在我的代码任何部分我不能回到我的环从任何函数读取的值,因为利用getCount()返回一个承诺,让我的函数也返回一个承诺等在...
所以我的问题是为什么?调用方法时,列表中的项目数量是否已知?
listView可以绑定到StorageDataSource,并不少见。它迭代文件,速度足够慢,需要异步。不,listView不会为你完成这项工作,它避免了在视图中只有少数几个实际可见的情况下,记住成千上万个文件所需的内存。很难看出问题的答案如何有所帮助。 –
它很有用,因为它不是立即清楚的是listview实际上只加载了内存中的可见项。 –