Flex: как данные передаются из DataGridColumn.itemToLabel в DataGrid.itemRenderer.set(data)?

У меня есть DataGrid, dataProvider которого является массивом массивов int (каждый из которых имеет разную длину). Поскольку каждая строка имеет переменный размер (и я хочу отобразить все данные), я решил расширить DataGridColumn и перезаписать функцию itemToLabel, чтобы иметь возможность отображать данные. Проблема в том, что мне также нужно отображать данные по-разному в зависимости от значения int.

Я полагаю, что единственное решение - написать itemRenderer, но единственный вход, который получает функция itemRenderer.set (data), это весь массив int Array. Я считаю, что мне нужна либо точная строка, возвращаемая itemToLabel, либо индекс столбца ячейки, для которой предназначен itemRenderer (в основном, для того же анализа, который я реализовал в itemToLabel).

Я использую Flex 3.4. Спасибо за вашу помощь.

1 ответ

Решение

http://flexgeek.wordpress.com/2007/05/30/tutorial-using-same-itemrenderer-for-multiple-columns/

Из статьи

"... мы должны реализовать интерфейс IDropInListItemRenderer, который имеет два метода.

public function get listData():BaseListData
{
  return _listData;
}
public function set listData(value:BaseListData):void
{
  _listData = DataGridListData(value);
  invalidateProperties();
}

Объект _listData содержит свойство columnIndex, которое сообщает вам, к какому столбцу принадлежит itemRenderer."

Другие вопросы по тегам