2009-01-29 7 views
1

Je sais que AdvancedDataGrid a un rappel styleFunction, mais je ne veux pas changer le style; Je veux que itemRenderer obtienne le style global que tout le reste (y compris les colonnes normales) utilise. Mes rendus d'éléments en ligne utilisent le style par défaut, mais pas ceux que j'ai créés en tant que classes MXML distinctes (ils étendent Canvas).Flex AdvancedDataGrid: MXML ItemRenderers n'affiche pas le style par défaut

Toute poignée que j'ai besoin de secouer pour propager le style dans mes moteurs de rendu d'élément?

Merci

Répondre

1

Je ne pense pas que vous pouvez propager. On dirait que styleFunction est pour quelque chose de complètement différent. Mais vous pouvez accéder à toute propriété CSS

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

puis:

styleDecl.getStyle(property); 

Si vous voulez obtenir la déclaration de style directement à partir du AdvancedDataGrid vous devez obtenir équarrisseurs listData:

<?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

Mon Bad

Il reprenait le style de l'ADG; Le style de ce composant n'a pas été défini par défaut sur le style global.