Динамически добавлять столбцы в сетку данных в Flex - PullRequest
1 голос
/ 22 сентября 2011

Я пытаюсь создать сетку данных, которая будет динамически добавлять столбцы в нее в зависимости от некоторых условий. Теперь я могу добавить столбцы, но хочу, чтобы во вновь добавленном столбце была кнопка с использованием itemRenderer.

Я не могу этого достичь. Получение этой ошибки в строке 1

Описание Resource Path Location Тип 1067: неявное приведение значение типа mx.controls: кнопка для несвязанного типа mx.core: IFactory. Demo.mxml / Demo / src line 14 Flex Problem

Может кто-нибудь помочь?

Вот фрагмент кода:

private function addDataGridColumn(dataField:String):void {
            var dgc:DataGridColumn = new DataGridColumn();
            dgc.itemRenderer = button1;    // Line 1 
            var cols:Array = dataGrid.columns;
            cols.push(dgc);
            dataGrid.columns = cols;
        }

1 Ответ

4 голосов
/ 22 сентября 2011

Свойства itemRenderer и itemEditor имеют тип IFactory. Когда вы устанавливаете эти свойства в MXML, компилятор MXML автоматически преобразует значение свойства в тип ClassFactory, класс, который реализует интерфейс IFactory.

Когда вы устанавливаете эти свойства в ActionScript, вы должны явно привести значение свойства к ClassFactory

Возможно, вы ищете это, добавляете кнопки во все строки вновь добавленного столбца.

private function addDataGridColumn(dataField:String):void {
                var dgc:DataGridColumn = new DataGridColumn();
                dgc.itemRenderer = new ClassFactory(Button);
                var cols:Array = dataGrid.columns;
                cols.push(dgc);
                dataGrid.columns = cols;
            }
...