在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實際上只加載了內存中的可見項。 –