Я хочу использовать один источник данных (например, массив) для нескольких Datagrids, которые имеют разные фильтры, и отображают разные столбцы. Во-первых, я думал, что я использую очень прямо вперед apporach:Использование одного источника данных для нескольких datagrids в Flex3
- создать массив
- создать ArrayCollection для каждого DataGrid и установите свойство «источник» в массив
- создать DataGrids и установить их dataProvider для присвоенного ему ArrayCollection
Так что теперь. каждый ArrayCollection может иметь свою собственную filterFunction, состояние сортировки и т. д., но должен быть только один массив со всеми данными в памяти.
Теперь до такой степени, что меня полностью смутили: Поскольку новые элементы добавляются в массив, конечно, никаких событий не отправляются, и я должен вызывать itemUpdated вручную на каждом из массивов ArrayCollections. Отлаживая код, чтобы получить более глубокое понимание для Flex, я попытался выяснить, что делает этот грязный метод «itemUpdated», особенно, как отмечается в документации Adobe, если нет «свойства» (например, он равен нулю), произойдет простое «refresh()». Я не нашел никаких вызовов для «refresh()» во всей отладке (и я спустился по всей структуре как можно глубже (кстати, в коде есть много смешных комментариев :-)). Единственное, что я смог найти, - это CollectionChangeEvent, отправляемый с PropertyChangeEvent в свой «элемент». Что было такого типа «ОБНОВЛЕНИЕ» (а не, как и следовало ожидать, «ДОБАВИТЬ»). При попытке отправить это событие вручную, он никогда не работал (например, файл данных не обновлялся). Я знаю, что я должен придерживаться пунктаUpdated на данный момент, но поскольку dataprovider может стать большим (в обоих измерениях), производительность меня касается, и я буду понимать, что происходит под капотом.
И, как и ожидалось, никакой помощи от самана :-(
так большое спасибо за все, кто читают весь этот текст. и еще больше СПАСИБО всем, кто отвечает и дает мне slightes намек в том, как я может выйти из путаницы и понять (если то возможно) ФСТЗ немного лучше.
лучшего из всех отношений,
Герберта
Я смущен. Почему у вас есть 1 массив, являющийся источником нескольких массивов, которые затем являются источником для datagrids? Почему не просто 1 ArrayCollection, который является источником для всех DataGrids? – Karthik