Как: RadioButton в пользовательском DataGridColumn ItemRenderer в AS3 - PullRequest
0 голосов
/ 30 апреля 2010

У меня есть сетка данных, в которую я хочу добавить столбец переключателя, используя AS3 (вместо mxml). Я смог сделать это с помощью пользовательского itemRenderer.

var dgc:DataGridColumn = new DataGridColumn();
dgc.itemRenderer = new ClassFactory(com.mypackage.RadioBtnColumnItemRenderer);

В моем RadioBtnColumnItemRenderer.mxml у меня есть поле с кнопкой радио ... вот так:

<?xml version="1.0" encoding="utf-8"?>
<mx:Box 
xmlns:mx="http://www.adobe.com/2006/mxml"
horizontalAlign="center" verticalAlign="middle"
>
<mx:RadioButton id="btnRadio"
   groupName="btnRadioSelect"
/>
</mx:Box>

Когда я запускаю приложение, в столбце появляется переключатель, как и должно быть. Тем не менее, я не могу выбрать только одну из переключателей. Я могу выбрать все из них, но я не хочу этого ... Я хочу возможность выбрать один, а затем, если я выбираю другой, то первый не выбирается, а текущий становится выбранным (так же, как Вы ожидаете, что радио кнопки будут работать).

Чего мне не хватает?

Ответы [ 2 ]

2 голосов
/ 27 июня 2011

Ты на самом деле довольно близко. Вам просто нужно передать ссылку на группу в фабрику классов, используя свойство "properties".

var dgc:DataGridColumn = new DataGridColumn();
var ir: = new ClassFactory(com.mypackage.RadioBtnColumnItemRenderer);
var radioGroup:RadioButtonGroup = new RadioButtonGroup(this);
ir.properties = {radioGroup:radioGroup}; //THIS IS KEY
dgc.itemRenderer = ir;

Теперь в рендерере вам нужно установить это свойство где-то так.

<mx:Script>
    [Bindable]
    public var radioGroup:RadioButtonGroup; 
</mx:Script>
<mx:RadioButton id="btnRadio"  group="{radioGroup}"  />
0 голосов
/ 01 мая 2010

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

http://livedocs.adobe.com/flex/3/langref/mx/controls/RadioButtonGroup.html

...