あなたが行ったやり方でこのチェックボックスにidを付けることはできません。また、単一のコンポーネントとして動作することを期待してください。 列のアイテムレンダラーとしてチェックボックスを指定すると、1つのチェックボックスについて話しているわけではありません。 データグリッドにある行と同数のチェックボックスを処理します。 次の例では、特定の行のチェックボックスを
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical"
creationComplete="init()">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.controls.Alert;
private var ac:ArrayCollection=new ArrayCollection([
{name: "John", test: true},
{name: "Joe", test: false}]);
private function init() {
dg.dataProvider=ac;
}
public function check():void {
var obj:Object=dg.selectedItem;
Alert.show("Checkbox=" + obj.test);
}
]]>
</mx:Script>
<mx:DataGrid id="dg"
dataProvider="{ac}"
click="check()">
<mx:columns>
<mx:DataGridColumn dataField="name">
</mx:DataGridColumn>
<mx:DataGridColumn>
<mx:itemRenderer>
<mx:Component>
<mx:CheckBox label="Test"
selected="{data.test}"/>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
</mx:columns>
</mx:DataGrid>
</mx:Application>
を選択されているかどうかを決定する方法を示します時々フレックスは、トラブルあなたが入れ子になったのitemRendererを持っているとき、データグリッドのデータプロバイダの更新を持っているようです。以下のようにチェックボックスで変更イベントが発生すると、dataprovider行の適切なプロパティを明示的に設定できます。
<mx:itemRenderer>
<mx:Component>
<mx:CheckBox label="Test" selected="{data.test}"
change="data.test=selected"/>
</mx:Component>
</mx:itemRenderer>
うまくいった! 2番目の部分では、change = "data.test = selected"でエラーが発生し、change = "data.test =!data.test"に変更する必要がありました – Edyn