我試圖完成的任務是讓我的Flex Datagrid中的財務數據進行顏色編碼 - 如果是正數,則爲綠色;紅色,如果它是負面的。如果我想着色的列是dataProvider的一部分,這將是相當簡單的。相反,我正在計算它基於dataProvider的一部分的另外兩列。這仍然是相當直接的,因爲我可以在ItemRenderer中再次計算它,但計算的另一部分是基於文本框的值。所以,我認爲我需要做的就是將textBox的值發送到自定義的ItemRenderer,但由於該值存儲在主MXML應用程序中,所以我不知道如何訪問它。發送它作爲參數似乎是最好的方式,但也許還有另一個。Flex - 發送一個參數給一個自定義的ItemRenderer?
這裏是我的ItemRenderer當前代碼:
package {
import mx.controls.Label;
import mx.controls.listClasses.*;
public class PriceLabel extends Label {
private const POSITIVE_COLOR:uint = 0x458B00 // Green
private const NEGATIVE_COLOR:uint = 0xFF0000; // Red
override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void {
super.updateDisplayList(unscaledWidth, unscaledHeight);
/* Set the font color based on the item price. */
setStyle("color", (data.AvailableFunding >= 0) ? NEGATIVE_COLOR : POSITIVE_COLOR);
}
}
(data.AvailableFunding不存在)
因此,沒有人知道我怎麼會去實現呢?
更好的答案比選擇的一個!添加一個事件處理程序,編寫三行代碼...完成! – 2011-03-17 21:35:19
你能舉一個例子來說明如何做到這一點嗎?我有一個列表組件和一個itemrenderer,我想傳遞一個額外的值到itemrenderer中,我該怎麼做? – sstauross 2012-03-13 18:06:40
非常優雅,創造奇蹟。爲了清楚起見,只需在渲染中定義屬性(例如fx:Declaration) – MonoThreaded 2012-06-22 15:22:52