0

ほとんどのセルが ItemRenderer に基づいている AdvancedDataGrid を作成しました。カスタム ItemRenderer (SoundBox) は VBox を拡張します。このカスタム コンポーネントを使用すると、ユーザーがセルをクリックすることに基づいて、背景色を簡単に変更できます。

AdvancedDataGrid のスニペットを次に示します (あまり高度なものはありません)。

<mx:AdvancedDataGrid id="fsfw" dataProvider="{fsfWordList}" sortableColumns="false" >
   <mx:groupedColumns>
   <mx:AdvancedDataGridColumn width="35" dataField="wordcount" headerText=" "/>
   <mx:AdvancedDataGridColumn id="myWord" width="150" headerText="TEST ITEMS">
     <mx:itemRenderer>
        <mx:Component>
           <components:SoundBox width="100%" letterSound="{data.word}" />
         </mx:Component>
      </mx:itemRenderer>
   </mx:AdvancedDataGridColumn>
   <mx:AdvancedDataGridColumn width="200" headerText="Correct / 2 points" dataField="sound1">
      <mx:itemRenderer>
         <mx:Component>
            <components:SoundBox width="100%" letterSound="{data.sound1}" pointColumn="2"/>
         </mx:Component>
      </mx:itemRenderer>
   </mx:AdvancedDataGridColumn>
  </mx:groupedColumns>
</AdvancedDataGrid>   

私がやろうとしているのは、ユーザーがrow1のcell3をクリックしたときに、row1、cell1の背景色を緑に変更することです(1行のデータがあるとしましょう)。

グリッド内のアイテム (ItemRenderer/SoundBox) にアクセスする方法がわかりません。

何か案は?THX!

4

1 に答える 1

0

次のコードを見てください、、、指定された行と列のインデックスのアイテム レンドラーを返します。Advance dataGrid を拡張し、拡張クラスでこの関数を定義して、それを機能させてから、「CustomADG.indicesToItemRenderer(0)」のように使用します。 ,0)" であり、その reuturend オブジェクトで、soundComponent への参照を取得しようとします。

public function indicesToItemRenderer(rowIndex:int, colIndex:int):IListItemRenderer
            {
                var firstItemIndex:int = verticalScrollPosition - offscreenExtraRowsTop;
                if (rowIndex < firstItemIndex ||
                    rowIndex >= firstItemIndex + listItems.length)
                {
                    return null;
                }

                return listItems[rowIndex - firstItemIndex][colIndex];
            }
于 2010-06-17T06:17:25.207 に答える