Я пытаюсь настроить DataGrid, содержащий столбец со списком. Значения полей со списком определяются данными, относящимися к этой строке. Я не могу заставить это работать, я прошу решения этой проблемы, либо исправив то, что у меня есть ниже, либо порекомендую другим способом.
В одном из столбцов моего DataGrid есть объект, производный от ComboBox для ItemEditor. ItemEditor настроен так:
<mx:DataGridColumn editorDataField="selectedItem" dataField="type" editable="true" >
<mx:itemEditor>
<mx:Component>
<FilterCell:SelectCellBase initialize="set_combo()" grid="{this}"/>
</mx:Component>
</mx:itemEditor>
</mx:DataGridColumn>
Таким образом, когда создается itemEditor (когда пользователь дважды щелкает по ячейке), данные заполняются.
Затем функция set_combo () SelectCellBase определяется как таковая:
public function set_combo( ) : void
{
var type : String = grid.dataProvider[grid.selectedIndex]['type'];
if( 'text' == type )
{
this.dataProvider = text;
}
else
{
this.dataProvider = number;
}
}
Однако эта реализация не работает, потому что, когда я пытаюсь вызвать grid.selectedIndex, кажется, что он всегда возвращает -1.
Что я делаю не так или что может быть лучше?