0

(mxml の代わりに) AS3 を使用してラジオ ボタンの列を追加したいデータグリッドがあります。カスタムitemRendererでこれを行うことができました。

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

私の RadioBtnColumnItemRenderer.mxml には、radioButton のあるボックスがあります...次のように:

<?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>

アプリケーションを実行すると、ラジオ ボタンが列に表示されます。ただし、ラジオ ボタンを 1 つだけ選択することはできません。それらのすべてを選択することはできますが、これは望ましくありません... 1 つを選択する機能が必要で、別の 1 つを選択すると、最初の 1 つが選択解除され、現在の 1 つが選択されます (ラジオボタンが機能することを期待するでしょう)。

私は何が欠けていますか?

4

2 に答える 2

2

あなたは実際にはかなり近いです。「プロパティ」プロパティを使用して、グループへの参照をクラス ファクトリに渡すだけです。

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}"  />
于 2011-06-27T16:35:00.217 に答える
0

この動作を 1 つだけ選択するには、RadioButtonGroup を定義する必要があります。このグループをアイテム レンダラーに配置すると、目的の動作を実現できないと思いますので、データ グリッドを保持するコンテナーからグループを参照する方法を考える必要があるかもしれません。

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

于 2010-04-30T20:50:51.093 に答える