是否可以根据该行的数据更改AdvancedDataGrid中树列的文件夹图标?
我有一个AdvancedDataGrid,它以树格式显示HierarchicalData(来自XML数据)。我想根据每行的XML数据显示文件夹图标的不同图标。更改文件夹图标的唯一明显方法是设置AdvancedDataGrid的folderOpenIcon和folderClosedIcon属性,但这会为所有行设置文件夹图标。我尝试使用AdvancedDataGrid函数“setItemIcon”,但这似乎不起作用。
我在这个AdvancedDataGrid中有一些ColumnRenderers,它根据行数据在其他列中显示不同的图标,但我还没有找到一种方法来对主树列执行此操作。我猜它会类似于使用ColumnRenderer,但可能使用像GroupItemRenderer这样的东西。
答案 0 :(得分:2)
这应该可以通过这样的groupIconFunction
来实现:
<mx:AdvancedDataGrid groupIconFunction="getGroupIcon">
<mx:columns>
<mx:AdvancedDataGridColumn headerText="Name" dataField="name"/>
</mx:columns>
</mx:AdvancedDataGrid>
<fx:Script>
[Embed(source='/assets/company.png')]
private static const COMPANY_ICON: Class;
[Embed(source='/assets/customer.png')]
private static const CUSTOMER_ICON: Class;
private function getGroupIcon(item:Object,depth:int):Class
{
if (item is Company)
return COMPANY_ICON;
if (item is Customer)
return CUSTOMER_ICON;
// null = default icon
return null;
}
</fx:Script>
Adobe的Flex在线参考中还有一个示例,演示如何use the groupIconFunction and groupLabelFunction properties。