2009-01-29 59 views
1

我知道AdvancedDataGrid有一個styleFunction回調,但我不想改變樣式;我希望itemRenderer獲得其他一切(包括普通列)使用的全局風格。Flex AdvancedDataGrid:MXML ItemRenderer不默認爲默認樣式

我的內嵌項呈示器使用默認樣式,但不是我作爲單獨的MXML類創建的樣式(它們擴展Canvas)。

任何我需要擺動來將風格傳播到我的項目渲染器中的句柄?

謝謝

回答

1

我不認爲你可以傳播。似乎styleFunction是完全不同的東西。如果您想直接從AdvancedDataGrid獲取樣式聲明

styleDecl.getStyle(property); 

你必須得到渲染的ListData:但是你可以訪問任何CSS屬性

var styleDecl:CSSStyleDeclaration = StyleManager.getStyleDeclaration("YourTagOrClassName"); 

然後

<?xml version="1.0" encoding="utf-8"?> 
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" 
    implements="mx.controls.listClasses.IDropInListItemRenderer"> 

    <mx:Script> 
     import mx.controls.dataGridClasses.DataGridListData; 
     import mx.controls.listClasses.BaseListData; 
     [Bindable("dataChange")] private var _listData : BaseListData; 
     public function get listData():BaseListData 
     { 
      return _listData;    
     }     
     public function set listData(value : BaseListData) : void 
     { 
      _listData = value; 
     } 
     override public function set data(value:Object):void 
     { 
      super.data = value; 
      if (this.listData) 
       ((this.listData as DataGridListData).owner as AdvancedDataGrid).getStyle(...); 
     } 
    </mx:Script> 

</mx:Canvas> 
0

我壞

這是從ADG拿起風格;該組件的風格並未默認爲全局風格。