Ich würde gerne die Daten an ein DataGrid zur Verfügung gestellt entscheiden, wie es am besten gerendert werden soll (das heißt, lassen Sie die Daten tragen ein Objekt, das das Rendern tun wird).Flex ItemRenderer als ein Feld von `Daten`?
Zum Beispiel durch einen „Renderfähig“ Schnittstelle zu schaffen, die einen ‚Renderer: IFactory‘ hat die Eigenschaft, dann wie unten verwendet:
<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>
Aber um dies zu tun, hat Render IEventDispatcher
, zu erweitern, die scheint viel wie ein kleines ...
ich habe auch versucht, mit:
itemRenderer="{(data as Renderable).getRenderer()}"
die nichts tut (in der Tat, die getRenderer
Methode nie aufgerufen wird).
Gibt es einen besseren Weg, dies zu tun? Mache ich etwas grundsätzlich falsch?
Danke!
Danke für die Antwort. Der Grund, warum ich die Daten und die Ansicht auf diese Weise mischen möchte, ist, dass es verschiedene Arten von Daten geben könnte, die aus dem Provider kommen und ich denke, dass es die geringste Gesamtkopplung geben wird, wenn jedes Datum weiß, wie es sich selbst rendert. –