Apache flex 如何在运行时在flex的datagrid中设置相同的列宽?

Apache flex 如何在运行时在flex的datagrid中设置相同的列宽?,apache-flex,datagrid,width,visibility,Apache Flex,Datagrid,Width,Visibility,嗨, 在flex中,我有一个包含22列的datagrid。我最初显示所有列。每列右侧的宽度是均匀的。 现在,当我更改几列的可见性时,每列的宽度都会发生变化。无论是否存在任何不可见的列,如何为每列保持统一的列宽?。。。 另外,如何获取可见列的数量。ColumnCount属性返回的是列的总数,而不是可见列的数目。列是一个数组,因此您可以将代码附加到任何使其不可见的函数中,并在数组中循环设置每个列的宽度。您只需保持Datagrids宽度和可见列数的选项卡,这也可以通过循环实现。以下是一些未经测试的代码

嗨, 在flex中,我有一个包含22列的datagrid。我最初显示所有列。每列右侧的宽度是均匀的。 现在,当我更改几列的可见性时,每列的宽度都会发生变化。无论是否存在任何不可见的列,如何为每列保持统一的列宽?。。。
另外,如何获取可见列的数量。ColumnCount属性返回的是列的总数,而不是可见列的数目。

列是一个数组,因此您可以将代码附加到任何使其不可见的函数中,并在数组中循环设置每个列的宽度。您只需保持Datagrids宽度和可见列数的选项卡,这也可以通过循环实现。以下是一些未经测试的代码,这些代码将使您接近目标:

function makeAColInvisible():void{
  //code you use to set col invisible

  var visColCount:number = 0;
  for each (var item:DataGridColumn in myDataGrid.columns){
    if(item.visible == true){
      visColCount++;
    }
  }

  for each (var item2:DataGridColumn in myDataGrid.columns){
    item2.width = myDataGrid.width / visColCount;
  }
}