Hi guys, My DataGrid is listening to itemEditEnd for each itemEditor change. I have a ComboBox and a CheckBox used as itemEditor components in the datagrid. I'm going to make immediate actions to user interaction, like when change selection of a ComboBox, once user select another value, application immediately make a request to server and continue something upon response.
The ComboBox works well for me, when there's a 'close' event I simply move focus out of that itemEditorInstance, itemEditEnd function activated without problem. But the CheckBox behavior is quite strange, when I click on it, if checkbox.selected change to false, itemEditEnd function won't do anything; but when click on and checkbox.selected=true, itemEditEnd immediately get the event. I don't understand how CheckBox ate the focusManager changes. Source code followed, I tried different ways from simple CheckBox component to custom component but no luck. Any help appreciated. Thanks, George --------------------------------------------------------- DataGrid component class: <mx:DataGridColumn headerText="Enable" itemRenderer="EnableEdit" rendererIsEditor="true" editorDataField="selected" dataField="enable" width="50" sortable="false"/> private function itemEditEndHandler(e:DataGridEvent):void { trace('get it?'); var grid:DataGrid = e.currentTarget as DataGrid; var pos:Object = grid.editedItemPosition; trace(pos.rowIndex); // something to do } EnableEdit.mxml: <?xml version="1.0" encoding="utf-8"?> <mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" horizontalAlign="center" dataChange="this.update()" creationComplete="init()"> <mx:Script> <![CDATA[ import mx.binding.utils.BindingUtils; [Bindable] public var selected:Boolean; private function init():void { this.update(); //BindingUtils.bindProperty(this, 'check', this.checkBox, 'selected'); } private function update():void { this.selected = data.enable; this.checkBox.selected = this.selected; } /* public function set check(b:Boolean):void { if(this.selected != b){ trace('changed?'); this.selected = b; //change focus will dispatch itemEditEnd event or whatever. RouterModelLocator.getInstance().application.mainView.setFocus(); } }*/ private function clicked():void { trace('clicked'); //this.checkBox.setFocus(); TestModelLocator.getInstance().application.mainView.setFocus(); } ]]> </mx:Script> <mx:CheckBox id="checkBox" click="this.clicked()"/> </mx:HBox>