Обновление DataGrid при обновлении DataProvider - PullRequest
3 голосов
/ 22 февраля 2010

Я работаю над приложением, использующим Flex, Adobe Air. У меня есть DataGrid с XML в качестве моего DataProvider. Во время выполнения программы мой XML обновляется. После обновления и сохранения XML мой DataGrid также должен получить обновление. Я использовал Dataprovidername.refresh() метод, но он не работает.

Ответы [ 4 ]

5 голосов
/ 22 февраля 2010

после обновления данных попробуйте отправить событие изменения коллекции вручную:

datagrid.dataProvider.dispatchEvent( new CollectionEvent(CollectionEvent.COLLECTION_CHANGE));
3 голосов
/ 30 мая 2011

Для тех из вас, кто интересуется внутренностями. MX Halo DataGrid и AdvanceDataGrids обновятся при обнаружении изменений в поставщике данных. Это должно быть автоматическим. Это, конечно, будет работать только в том случае, если вы пометите поставщик данных как привязываемый и измените переменную, которая является самим поставщиком данных. Всегда полезно иметь ваш поставщик данных в качестве ICollectionView.

Например, если вы укажете «Массив» или «XML» в качестве поставщика данных для сетки данных, эта сетка данных создаст новую коллекцию ArrayCollection или XmlListCollection и будет использовать ее вместо провайдера данных. В этом случае добавление / удаление в исходный массив не окажет никакого влияния.

Кроме того, в случае, если вам нужно «перерисовать» сетку данных, вам нужно вместо этого вызвать invalidateList (). Многие думают, что «invalidateDisplayList ()» должен это делать, но это не так. Это относится ко всем элементам управления на основе списка (те, которые наследуются от ListBase).

1 голос
/ 17 марта 2010

Я решил проблему обновления сетки данных при изменении XML поставщика данных ....

вместо сохранения XML-документа и загрузки его в провайдер данных сетки данных я назначил обновленный XML-документ провайдеру данных в качестве нового провайдера. Таким образом, можно решить проблему обновления с привязкой.

1 голос
/ 22 февраля 2010

Вы сделали XML-переменную Bindable?:

[Bindable]
private var data:XML...
...