2010-09-27 4 views
1

J'ai MXML suivant (certaines parties pour Omitted but de brièveté):liaison de données à partir d'une méthode dans Flex

<fx:Script> 
    [Bindable] 
    private var _dataSet:IDataSet; 

    public function set dataSet(value:IDataSet) 
    { 
     _dataSet = value; 
    } 

    private function getColorItem(itemName:*):String 
    { 
     if (itemName == "Research") return "#31e5fc"; 
     ... 
     else { 
     trace("Unknown item : " + itemName); 
     return #ffffff; 
     } 
    } 
</fx:Script> 
<spark:RichText color="{this.getColorItem(this._dataSet.name)}" ... /> 

Est-ce que quelqu'un sait pourquoi la couleur n'est pas appliquée? Si je change la liaison à la méthode, pour une constante String (c'est-à-dire # 31e5fc), ça marche bien?

J'ai besoin que la couleur change en fonction des données reçues par ce composant. Toute aide sur où je fais une erreur est très appréciée.

Répondre

1

Vous avez quelques petites choses ici. Premièrement, votre fonction getColorItem devrait renvoyer un uint plutôt qu'un String. Deuxièmement, pourquoi ne pas simplement appeler getColorItem depuis votre setter dataSet? Quelque chose comme ceci:

public function set dataSet(value:IDataSet) 
{ 
    _dataSet = value; 
    myRichText.setStyle("color", getColorItem(_dataSet.name); 
} 

Hope that helps.

+0

Je viens de comprendre mes erreurs. J'avais oublié de mettre un identifiant pour le RichText. Merci! – dornad

Questions connexes