加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flex – 将参数发送到自定义ItemRenderer?

发布时间:2020-12-15 02:11:53 所属栏目:百科 来源:网络整理
导读:我想要将Flex DataGrid中的财务数据的颜色编码为绿色,如果它是积极的;红色如果是负数。如果我想要的颜色的列是dataProvider的一部分,这将是相当简单的。相反,我正在基于另外两列作为dataProvider的一部分进行计算。这仍然是相当简单的,因为我可以在ItemR
我想要将Flex DataGrid中的财务数据的颜色编码为绿色,如果它是积极的;红色如果是负数。如果我想要的颜色的列是dataProvider的一部分,这将是相当简单的。相反,我正在基于另外两列作为dataProvider的一部分进行计算。这仍然是相当简单的,因为我可以在ItemRenderer中再次计算它,但计算的另一部分是基于一个textBox的值。所以我认为我需要做的就是将textBox的值发送给自定义的ItemRenderer,但由于该值存储在主MXML应用程序中,我不知道如何访问它。发送它作为一个参数似乎是最好的方式,但也许还有另一个。

以下是我的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不存在)

有没有人知道我会如何完成这个?

解决方法

您可能希望从Flex API中查看 ClassFactory:

这允许您设置具有任意类型/值的原型对象,每个值将被传递到项目渲染器。从样品:

var productRenderer:ClassFactory = new ClassFactory(ProductRenderer);
productRenderer.properties = { showProductImage: true };
myList.itemRenderer = productRenderer;

上面的代码假定“ProductRenderer”有一个名为“showProductImage”的公共属性,它将被设置为一个值“true”。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读