0

カスタムアイテムレンダラーで値オブジェクトにアクセス/渡すにはどうすればよいですか? アイテム レンダラーはデータグリッド内のフィールドを表し、VO からプロパティにアクセスできるようにしたいと考えています。

ありがとう

4

2 に答える 2

1

アイテムレンダラーのsetdataメソッドをオーバーライドする必要があります。

<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/halo">
    <fx:Script>
        <![CDATA[

            //Strongly typed VO for use in binding.
            [Bindable]
            private var myValueObject:MyValueObject;

            override public function set data(value:Object) : void
            {
                //we don't want to update if the value is the exact same.
                if(data === value)
                    return;

                //you could simply access the data property but I think
                //it is nicer to have strong typing for code hints
                super.data = myValueObject = value;
                validateNow();
            }
        ]]>
    </fx:Script>
    <mx:Label text="{myValueObject.name}"/>
</mx:Canvas>
于 2009-09-07T23:31:27.940 に答える
0

このアプローチはどうですか?

アイテム レンダラー ItemRendererLink.mxml:

            public function goTo():void {
                Alert.show(goToScreen + " " + data.item_num);
            }
        ]]>
    </mx:Script>
</mx:LinkButton>

親コンポーネント:

    <mx:DataGridColumn dataField="item_num"
        headerText="Item #">
        <mx:itemRenderer>
            <mx:Component>
                <e:ItemRendererLink goToScreen="item"/>
            </mx:Component>
        </mx:itemRenderer>
    </mx:DataGridColumn>
于 2009-12-09T21:12:14.790 に答える