2011-01-26 1 views
3

Dans un code MXMLavertissement Désactiver seulement dans un endroit

<fx:Script> 
    public var data:ArrayCollection = new ArrayCollection(); 
</fx:Script> 
<s:DataGroup dataProvider="{data}" /> 

Je reçois un avertissement:

La liaison de données ne seront pas en mesure de détecter les affectations aux « données »

Je sais que le fournisseur de données ne sera jamais changé dans ce cas, et que vous voulez supprimer cet avertissement dans ce cas, mais je ne veux pas le désactiver complètement, -show-binding-options=false dans tous les projets n'est pas une option. Comment désactiver un avertissement seulement dans un endroit? Désactiver pour le fichier entier n'est pas si bon, mais acceptable.

+0

Aucune bonne réponse pour l'instant. L'ajout de [Bindable] est excessif et pas toujours possible. – BrunoJCM

Répondre

2

Comment rendre votre variable data lisible? Quelque chose comme:

<fx:Script> 
    [Bindable] 
    public var data:ArrayCollection = new ArrayCollection(); 
</fx:Script> 
<s:DataGroup dataProvider="{data}" /> 
+0

C'était la première chose que j'ai essayé. N'a pas fonctionné. – grep

+0

Intéressant J'ai juste ouvert un projet propre avec juste le code que vous avez écrit ci-dessus et essayé et ajouté la balise de métadonnées [Bindable]. Après l'avoir ajouté, l'avertissement a disparu. Pourriez-vous poster un extrait plus grand du code? – martineno

0

Au lieu d'utiliser <fx:Script></fx:Script> vous pouvez utiliser <fx:Declarations></fx:Declarations>. Tout objet déclaré dans cet élément MXML peut être lié implicitement. Voici comment votre code ressemblera alors:

<fx:Declarations> 
    <s:ArrayCollection id="data" /> 
</fx:Declarations> 

<s:DataGroup dataProvider="{data}" /> 

De plus, il devient beaucoup plus facile à lire et il n'y a pas de mélange d'ActionScript et MXML. Comme votre collection est déclarée publique, il est important d'utiliser ActionScript avec [Bindable] ou d'utiliser MXML. BTW, une recommandation générale pour le code nettoyeur est de séparer complètement ActionScript de MXML. Par exemple, dans mes projets, je crée un fichier ActionScript distinct pour chaque composant MXML sous la forme <NameOfComponent>Includes.as.

Questions connexes