Co staram się osiągnąć, aby dane finansowe w moim Flex Datagrid były kodowane kolorami - zielone, jeśli są pozytywne; czerwony, jeśli jest ujemny. Byłoby to dość proste, gdyby kolumna, którą chcę kolorować była częścią dataProvider. Zamiast tego, obliczam to na podstawie dwóch innych kolumn, które są częścią dataProvider. Byłoby to dość proste, ponieważ mógłbym to obliczyć ponownie w ItemRenderer, ale inna część obliczeń opiera się na wartości textBox. Tak, więc myślę, że muszę być w stanie wysyłać wartość textBox do niestandardowego ItemRenderer, ale ponieważ wartość ta jest przechowywana w głównej aplikacji MXML, nie wiem, jak uzyskać do niego dostęp. Wysłanie go jako parametru wydaje się najlepszym sposobem, ale może jest inny.Flex - Wysyłanie parametru do niestandardowego obiektu ItemRenderer?
Oto aktualny kod dla mojego 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 nie istnieje)
Więc czy ktoś wie jak pójdę o realizacji tego?
Znacznie lepszą odpowiedź niż wybrany! Dodaj jedną obsługę zdarzeń, napisz trzy linie kodu ... ZROBIONY! –
możesz podać przykład, jak to osiągnąć?Mam element listy i elementndnderer i chcę przekazać dodatkową wartość do elementu, który wydał przedmiot, w jaki sposób mogę to zrobić? – sstauross
Bardzo elegancki i cuda działa. Właściwości klarowności muszą być zdefiniowane w renderowaniu (w fx: Deklaracja na przykład). – MonoThreaded