Что является источником в ArrayCollection и XMLListCollection? - PullRequest
0 голосов
/ 29 августа 2011

Какова роль источника для ArrayCollection или XMLListCollection?

Используется ли он только один раз - при создании нового объекта ArrayCollection или XMLListCollection и копируется ли в некоторую внутреннюю структуру данных этого объекта?

Поскольку ничего не обновляется при изменении исходного массива (или XMLList), и документация также подтверждает это:

Основной XMLList для этой коллекции. Объект XMLListCollection не представляет никаких изменений, которые вы вносите непосредственно в исходный объект XMLList. Всегда используйте методы XMLListCollection для изменения коллекции.

Это свойство может использоваться в качестве источника для привязки данных. Когда это свойство изменяется, оно отправляет событие listChanged.

Я спрашиваю, потому что примеры Flex, связанные с dataProviders, всегда используют Array или XMLList в качестве источника данных для компонента, управляемого данными. И мне интересно, нужно ли вообще использовать Array или XMLList - например, при загрузке данных из внешнего PHP-скрипта.

1 Ответ

2 голосов
/ 29 августа 2011

Используя коллекции ArrayCollection или XMLListCollection, вы можете применить к ним сортировку или фильтр. В этом случае source вернет все элементы в исходном порядке без применения фильтра. Я часто использую source таким образом. Добавление и удаление элементов из коллекции также изменяет исходный массив.

Что касается использования коллекций или массивов в качестве поставщика данных, вы можете использовать их все в списках MX, но списки Spark могут принимать только IList, которые реализованы в коллекциях, упомянутых выше.

Преимущество использования коллекций в качестве поставщика данных заключается в возможности применять фильтры и сортировку без изменения исходного массива. И, конечно, возможность прослушать изменения коллекции.

Использование чистых Array или XMLList в примерах, я полагаю, для простоты и некоторых деталей реализации конкретного взаимодействия клиент-сервер.

...