0

Flex で DataGrid 用のカスタム ItemRenderer を作成しています。私の問題は、listData を使用できるようにして、ItemRenderer が現在の行にあるものを把握できるようにする必要があることです。IDropInListItemRenderer を正しく実装できないようです。

上部にある私のコードは次のとおりです。

<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:s="library://ns.adobe.com/flex/spark" autoDrawBackground="false" styleName="gRenderer" dataChange="setStates()" implements=" mx.controls.listClasses.IDropInListItemRenderer">

そして、私は持っています:

 private var _listData:BaseListData;

そして、私は持っています:

public function get listData():BaseListData {
        return this._listData;
    }

    public function set listData( value:BaseListData ):void {
        this._listData = value;
    }

しかし、私の set data メソッドでは、これをやろうとしています:

 override public function set data( value:Object ):void {
        super.data = value;
       var row : int = listData.rowIndex;
    }

しかし、実行時に、null オブジェクトのプロパティにアクセスしようとしているというエラーがスローされます。私のデバッガーでは、listData が null であることを確認できます。理由がわかりません。オンラインでどこでも読んだことから、必要なことはすべてやっているようです。私は何が欠けていますか?

ありがとう!

4

1 に答える 1

0

Spark データグリッド用のカスタム ItemRenderer を作成しているようです。その場合、基本クラス s:ItemRenderer を使用する代わりに、s:GridItemRenderer を使用します。参照できる rowIndex のパブリック プロパティがあります。

override public function set data( value:Object ):void {
    super.data = value;
    trace(rowIndex);
}
于 2012-07-16T15:26:44.163 に答える