У меня была проблема, похожая на это только в Flex 3 и с отсортированной ArrayCollection. Если вы обыскиваете, вы обнаружите, что addItemAt не работает с отсортированной коллекцией ArrayCollection (и если она не отфильтрована? Не знаю). Товар будет добавлен в соответствии с критериями сортировки.
Однако мне понадобилась отсортированная коллекция ArrayCollection (alpha) с опцией «Выбрать все» вверху, поэтому я продолжил:
Массив можно легко отсортировать (array.sort), поэтому я сначала создал массив. Затем я закрепил ArrayCollection и добавил элемент из ArrayCollection, по которому я хотел отсортировать массив. Этот новый массив был затем отсортирован.
Вновь отсортированный массив был зациклен, а внутри этого цикла ArrayCollection снова зациклен. Если совпадение было найдено в отсортированном элементе, я добавил этот объект в новую коллекцию ArrayCollection, но также создал новое свойство добавленного объекта, называемое «sortOrder», для которого было установлено количество циклов.
Затем объект «Выбрать все» был создан, и его sortOrder установлен в -1.
Наконец, числовая сортировка была создана в поле sortOrder ArrayCollection и вуаля - это сработало.
Возможно, у кого-то есть более элегантное решение, но я торопился, и это сработало, черт побери.
Надеюсь, это кому-нибудь поможет.