copier le contenu du lien donné par cbranch ici. stackoverflow est plus fiable pour le code snippets garder
Affichage infobulles lors de l'utilisation d'un itemRenderer
Une des mauvaises choses sur l'utilisation itemRenderers dans un DataGridColumn est que vous perdez la fonctionnalité dataTip qu'il fournit normalement. Eh bien, voici un moyen de simuler cette fonctionnalité.
D'abord, ajoutez dataTipField ou dataTipFunction à DataGridColumn comme vous le feriez normalement.
<mx:DataGridColumn headerText="DataTip"
dataField="name1"
showDataTips="true"
dataTipField="description1" />
Ensuite, dans votre itemRenderer ajoutez le code suivant pour pouvoir puiser dans ces informations et afficher une info-bulle à la place. dans vos colonnes
private function getToolTip():String{
var dg:DataGrid = listData.owner as DataGrid;
var func:Function = dg.columns[listData.columnIndex].dataTipFunction;
if(func != null){
return func.call(this, this.data);
}else if(dg.columns[listData.columnIndex].dataTipField.length){
return data[dg.columns[listData.columnIndex].dataTipField];
}else{
return "";
}
}
override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{
super.updateDisplayList(unscaledWidth, unscaledHeight);
this.toolTip = getToolTip();
}
Cela fonctionne avec les deux dataTipFields et dataTipFunctions et vous permet de traiter les dataTip de la même façon, peu importe si vous utilisez un itemRenderer ou non. La seule différence mineure est le positionnement de l'étiquette, mais qui peut être facilement modifié avec les styles. Vous pouvez télécharger le code source complet ici, pour un exemple fonctionnel de comment cela fonctionne.
source
DataGridColumn ne couvre pas UIComponent ou même DisplayObject. –
Ah oui, c'est correct.Essayez de regarder dans la classe DataGridItemRenderer, dans la méthode validateProperties, il y a du code qui gère les dataTip. Vous pouvez être en mesure de l'implémenter dans votre moteur de rendu personnalisé. –