J'ai un composant personnalisé dans un répéteur. Ce composant a un composant enfant qui peut être de deux types selon certaines conditions. Ce que j'ai fait était d'utiliser un UIComponent comme un espace réservé.Modification d'un composant enfant dans un autre composant d'un répéteur
Dans le composant répété, permet de dire RepeatedComponent:
<mx:VBox>
<mx:UIComponent id="placeHolder"/>
</mx:VBox>
Et je fais cela dans le composant ayant le répéteur:
// Function where I try to inject the child component :
private function getComponent():UIComponent{
if(condition)
{
return new ChildComponentA();
}
else
{
return new ChildComponentB();
}
]]>
</mx:Script>
<mx:VBox>
<mx:Repeater id="repeteur"
recycleChildren="true"
dataProvider="{arrayBeneficiaires}" >
<components:RepeatedComponent id="repeatedComponent"
beneficiaire="{repeteur.currentItem}"
placeHolder="{getComponent()}"/>
</mx:Repeater>
</mx:VBox>
Quand je place dans les points d'arrêt des fonctions appelées à creationComplete , Je peux voir que le composant assigné à placeHolder est correct mais il n'apparaît pas sur mon affichage. J'ai essayé de rafraîchir en appelant invalidateDisplayList dans tous les endroits que je peux penser, mais cela ne semble pas fonctionner. Toutes les idées seraient les bienvenues.
Merci
ajoutant que l'enfant était Explicitement bien la solution. Merci! – Sandy