アプリケーションの itemDataSource からすべてのアイテムを削除しようとしています。itemDataSource はリストビューにバインドされています。
リストビューでクリックされたときに単一のアイテムを削除することができましたが、すべてのアイテムを削除すると問題が発生します:(
これは、itemDataSource から 1 つのアイテムを削除するために使用したコードです。
//remove the clicked playlist item
var ds = document.getElementById("PlaylistListView").winControl.itemDataSource;
ds.beginEdits();
ds.remove(ds.itemFromIndex(eventInfo.detail.itemPromise._value.index)._value.key);
ds.endEdits();
そして、これは私がすべてのアイテムを削除するために書き込もうとしたコードです:
var ds = document.getElementById("PlaylistListView").winControl.itemDataSource;
ds.beginEdits();
console.log(ds._list._keys);
console.log("There are " + ds._list._keys.length + " items in this list");
for (var i = 0; i < ds._list._keys.length; i++) {
ds.remove(ds._list._keys[i]);
console.log("Item: " + ds._list._keys[i] + " has been removed from the list");
}
ds.endEdits();
これは、このコードを実行したときにコンソールに表示される出力です。
1,2,3,4,5,6,7,8,9,10,11
There are 11 items in this list
Item: 2 has been removed from the list
Item: 4 has been removed from the list
Item: 6 has been removed from the list
Item: 8 has been removed from the list
Item: 10 has been removed from the list
Item: undefined has been removed from the list
一部のアイテムのみが削除されるのはなぜですか? 出力は期待どおりですが、アイテム1,3,5,7,9, and 11
が削除されない原因は何ですか? シーケンスにはパターンがあり、毎回 2 であることに気付きました。
どんな助けでも大歓迎です:)