2010-04-01 3 views
1
<mx:Label text="{(item1 as INewsItem).displayName}"/> 

Pour le code ci-dessus dans Flex, je reçois cet avertissement:problème de liaison de données Flex

: La liaison de données ne seront pas en mesure de détecter les affectations à ITEM1.
Pourquoi? Comment le réparer?

Répondre

1

Merci Prutswonder.
En fait Item1 est déclarée comme un getter,
comme ceci:

public function get item1() 

Alors, je devais préfixer comme ceci:

[Bindable] public function get item1() 
1

L'avertissement est affiché car la liaison de données ne sera pas actualisée automatiquement lorsque item1 est mis à jour. Si vous voulez ce comportement, vous ne pouvez pas utiliser cette liaison de données et devrez mettre à jour le texte d'étiquette manuellement lorsque item1 est modifié.

2

Si vous définissez un [Bindable] function get item1() vous aurez également besoin définir un function set item1(), sinon Flex ne saurait pas quand envoyer un événement de modification. Ou vous pouvez envoyer manuellement l'événement change:

[Bindable(event="item1Change"] 
public function get item1() { return ... } 

Et chaque fois que quelque chose change Item1 vous décomposez un événement:

dispatchEvent(new Event("item1Change")); 
Questions connexes