У меня есть ArrayCollection , то есть dataProvider
для spark.components.List , который имеет allowMultipleSelection="true"
. Существует кнопка «Удалить выбранные элементы» , которая инициирует удаление всех выбранных элементов из коллекции ArrayCollection при нажатии.
В настоящее время я использую следующий метод:
myList.selectedIndices.sort(ascendingSort);
// remove items, counting backwards
for (var i:uint = myList.selectedIndices.length; i > 0; i--) {
myArrayCollection.removeItemAt(myList.selectedIndices[i-1]);
}
где ascendingSort
делает то, что вы ожидаете;). Он отлично работает, и я знаю, что он будет всегда работать.
Однако я принял к сведению, что, если я вообще пренебрегал сортировкой, к моему удивлению, удаление все равно работало. Причиной этого оказалось то, что когда вызывается removeItemAt
, selectedIndices
соответственно обновляются.
Итак, мой вопрос: Можно ли рассчитывать на removeItemAt
вызов, обновляющий значения в selectedIndices
? или это может отличаться в зависимости от времени выполнения и / или версий Flex SDK?
Очевидно, что если это надежно, то исключение сортировки будет значительным улучшением.