Хорошо, у меня было время покопаться в этой проблеме. Я искал несколько классов, чтобы увидеть, как Adobe реализовала такое поведение сетки (частично отображая столбцы). Таким образом, для тех, кому нужно разобраться с этим, необходимая часть находится в файле DataGrid.as, метод configureScrollBars
.. собственно, эта его часть:
// if the last column is visible and partially offscreen (but it isn't the only
// column) then adjust the column count so we can scroll to see it
if (collectionHasRows && rowCount > 0 && colCount > 1 &&
listItems[0][colCount - 1].x +
visibleColumns[colCount - 1].width > (displayWidth - listContent.x + viewMetrics.left))
colCount--;
else if (colCount > 1 && !collectionHasRows)
{
// the slower computation requires adding up the previous columns
var colX:int = 0;
for (var i:int = 0; i < visibleColumns.length; i++)
{
colX += visibleColumns[i].width;
}
if (colX > (displayWidth - listContent.x + viewMetrics.left))
colCount--;
}
Это почти весь код, необходимый для того, чтобы поймать и измерить все эти хитрые разделенные столбцы в сетке:)