Чтобы сделать это с одной DataGrid и одним списком, используйте функцию фильтрации в списке, которая изменяется в зависимости от активации вкладки (для одной части списка). Простой (хотя и неуклюжий) способ использования единой DataGrid - просто наложить DataGrid на ваш TabNavigator. Это легко сделать с контейнером типа Canvas, используя абсолютный макет:
<mx:TabNavigator x="120.7" y="127.35" width="496" height="276">
<mx:Canvas label="Test" width="100%" height="100%">
</mx:Canvas>
<mx:Canvas label="Test2" width="100%" height="100%">
</mx:Canvas>
</mx:TabNavigator>
<mx:DataGrid x="305" y="169">
<mx:columns>
<mx:DataGridColumn headerText="Column 1" dataField="col1"/>
<mx:DataGridColumn headerText="Column 2" dataField="col2"/>
<mx:DataGridColumn headerText="Column 3" dataField="col3"/>
</mx:columns>
</mx:DataGrid>
Пока DataGrid указан в списке после , TabNavigator в mxml будет отображаться сверху. Конечно, вы должны позаботиться о том, чтобы на каждой вкладке оставалось место соответствующего размера для сетки данных и так далее. Есть и другие способы сделать это, но это, вероятно, самый простой и, возможно, самый безопасный способ - при условии, что вы хотите, чтобы DataGrid отображался на всех вкладках.
Но если это так, вы также можете рассмотреть возможность уменьшения размера TabNavigator до размера «вещи», который должен изменяться при изменении вкладки, оставляя DataGrid в том же контейнере более высокого уровня, что и TabNavigator, но не перекрывая его.
Если вам нужна DataGrid, видимая только на определенных вкладках, но не на других, вы также можете использовать actionscript для вызова addChild / removeChild для контейнеров вкладок. Это прекрасно работает, и документация по removeChild даже предполагает, что это типичное использование:
Удаляет дочерний объект DisplayObject из
дочерний список этого Контейнера.
У удаленного ребенка будет родитель
свойство установлено в нуль. Ребенок будет
все еще существуют, если явно
уничтожены. Если вы добавите его в другой
контейнер, он сохранит свой последний
известное состояние.