我有我自己的自定義組件。該組件從基本容器中擴展而來。我想能夠訪問正在被可視化的itemRenderer實例。我知道組件mx:list有一個內部getter,它提供一個數組Array,它包含呈現每個數據提供程序項的itemRenderer實例。我想要同樣的東西。任何想法如何做到這一點?獲取呈現項目的列表
更具體地說:我將我的dataProvider項目的選定屬性設置爲true或false。從我的ItemRenderer的updateDisplayList函數中,我檢查屬性的更改並更正所選內容的邊框顏色。不幸的是我不得不強制updateDisplayList函數。我已經在列表中的一個ItemRenderer上執行了這個操作。只有列表是實用的,因爲通過創建我自己的列表,我能夠獲取正在呈現的項目列表並因此可視化(不能很多)。通過渲染的Items和updateDisplayList沒有任何開銷。但在這種情況下,我可以有100個項目。想象一下檢查和改變這麼多項目的風格。謝謝
在Flex 3中,容器類,如Container,VBox,HBox和Canvas不使用項目渲染器。只有基於列表的控件('List','HorizontalList','DataGrid'等)。容器類僅僅呈現添加到它們的子對象。在Flex 4中,有一個使用項目渲染器的「DataGroup」容器類,但在Flex 3中沒有這樣的容器。 –
這裏的問題是您爲什麼要訪問渲染器?你需要讓渲染器做他們最擅長的事情,並且渲染。沒有任何東西不能通過控件和數據提供者的組合來計算。 –