Je voudrais laisser les données fournies à un DataGrid décider de la meilleure façon de le rendre (c'est-à-dire laisser les données porter un objet qui fera le rendu).Flex ItemRenderer comme champ de `data`?
Par exemple, en créant une interface "Renderable", qui a un 'renderer: IFactory' propriété, utilisé comme ci-dessous:
<mx:DataGrid x="0" y="0" width="100%" dataProvider="{myDataProvider}">
<mx:columns>
<mx:DataGridColumn headerText="Task" width="100"
itemRenderer="{(data as Renderable).renderer}"/>
</mx:columns>
</mx:DataGrid>
Mais pour ce faire, Renderable doit étendre IEventDispatcher
, qui semble comme un peu beaucoup ...
J'ai aussi essayé d'utiliser:
itemRenderer="{(data as Renderable).getRenderer()}"
ce qui ne fait rien (en fait, la méthode getRenderer
ne fait jamais appelé).
Y a-t-il une meilleure façon de procéder? Est-ce que je fais quelque chose de fondamentalement faux?
Merci!
Merci pour la réponse. La raison pour laquelle je veux mélanger les données et la vue de cette façon est qu'il pourrait y avoir différents types de données sortant du fournisseur et je pense qu'il y aura le moins de couplage global si chaque donnée sait comment se rendre. –