Hola tengo un AdvancedDataGrid, el cual muestra fechas y estas deben ser editables para ello le agrege un componente datefield que aparece al hacer clic sobre la fecha, el problema que tengo es que al hacer clic sobre cualquier día en el calendario me cierra el calendario pero me deja el datefield en el grid con lo cual hay que darle un enter o hacer clic en cualquier otra parte para que se ejecute el evento de itemEditEnd del grid.

¿Como puedo hacer para que al hacer clic en el Calendario que muestra el componente DateField, ejecute el evento itemEditEnd?

Mi codigo es el siguiente:
[code]
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="100%" height="100%" applicationComplete="initGrid();">
<mx:Script>
<![CDATA[
import mx.controls.listClasses.IListItemRenderer;
import mx.controls.DateField;
import mx.controls.Alert;
import mx.controls.DateChooser;
import mx.collections.SortField;
import mx.collections.Sort;
import mx.collections.HierarchicalData;
//import mx.rpc.http.HTTPService;
import mx.rpc.events.ResultEvent;
import mx.rpc.events.FaultEvent;
import mx.events.AdvancedDataGridEvent;
import mx.events.AdvancedDataGridEventReason;
import mx.controls.listClasses.IDropInListItemRenderer;
import mx.controls.listClasses.IListItemRenderer
import mx.core.IDataRenderer;

[Bindable]
private var ajaxHierarchical:HierarchicalData;
public function ajaxHandler(event:ResultEvent):void{
if( event.result != '' ){
ajaxHierarchical = new HierarchicalData(event.result.task);
adgTask.dataProvider = ajaxHierarchical;
}
}

public function ajaxFault(event:FaultEvent):void{
Alert.show( event.fault.faultString, "Error" );
}

//Mostrar el DateChoose
public function sendModify(event:AdvancedDataGridEvent):void{
//try{
if( event.reason == 'cancelled' || event.reason == null ){
return;
}
if( event.reason != null ){
var colName:String = adgTask.columns[event.columnIndex].dataField;
var TaskId:String = adgTask.selectedItem['@TASK_ID'];
var params:Object = {};
var ajaxSave:HTTPService = new HTTPService();

//event.currentTarget.selectedItem.TASK_ID.toString()
switch(colName){
case '@TASK_RESUME':{
if( event.currentTarget.itemEditorInstance.text != '' || event.currentTarget.itemEditorInstance.text.length < 255 ){
if( event.currentTarget.itemEditorInstance.text != adgTask.selectedItem[colName] ){
params['step'] = 'mytaskbyproject_save';
params['type'] = 'text';
params['id'] = TaskId;
params['TASK_RESUME'] = event.currentTarget.itemEditorInstance.text;
ajaxSave.resultFormat = 'text';
ajaxSave.method = 'POST';
ajaxSave.useProxy = false;
ajaxSave.addEventListener(ResultEvent.RESULT, processResult);
ajaxSave.url = 'http://localhost/administradorProyectos/ajax.asp';
ajaxSave.send(params);
}
}
break;}
case '@DATE_EXPECTED_START_TASK':
case '@DATE_EXPECTED_END_TASK':
case '@DATE_TASK_PROYECTED':
case '@DATE_TASK_MODIFIED':{
if( event.currentTarget.itemEditorInstance.text != '' || event.currentTarget.itemEditorInstance.text != null ){
if( event.currentTarget.itemEditorInstance.text != adgTask.selectedItem[colName] ){
var day:String = event.currentTarget.itemEditorInstance.text.substr(0, 2);
var month:String = event.currentTarget.itemEditorInstance.text.substr(3, 2);
var year:String = event.currentTarget.itemEditorInstance.text.substr(6, 4);
params['step'] = 'mytaskbyproject_save';
params['type'] = 'date';
params['id'] = TaskId;
params['field'] = colName;
params['celname'] = year+month+day;
ajaxSave.resultFormat = 'text';
ajaxSave.method = 'POST';
ajaxSave.useProxy = false;
ajaxSave.addEventListener(ResultEvent.RESULT, processResult);
ajaxSave.url = 'http://localhost/administradorProyectos/ajax.asp';
ajaxSave.send(params);
}
}
break;}
}
}

/*}catch(error:Error){
Alert.show(error.message);
}*/
}

// The result processing function
protected function processResult(response:ResultEvent):void{
if(response.result.toString() != 'La información fue almacenada correctamente.'){
Alert.show( response.result.toString() );
}
}

public function initGrid():void {
this.ajaxData.send();
}
]]>
</mx:Script>

<mx:HTTPService result="ajaxHandler(event);" fault="ajaxFault(event);" id="ajaxData" resultFormat="e4x" url="http://vreventones/administradorProyectos/ajax.asp" useProxy="false" method="GET">
<mx:request xmlns="">
<step>mytaskbyproject</step>
<projectid>343</projectid>
</mx:request>
</mx:HTTPService>

<mx:AdvancedDataGrid id="adgTask" width="100%" height="100%" editable="true" selectionMode="singleRow" treeColumn="{No}" x="0" y="0"
themeColor="#3D84CC" itemEditEnd="sendModify(event);">
<mx:columns>
<mx:AdvancedDataGridColumn headerText="Tarea Id" id="TASK_ID" dataField="@TASK_ID" visible="false"/>
<mx:AdvancedDataGridColumn headerText="No" dataField="@TASK_NUMBER" id="No" editable="false"/>
<mx:AdvancedDataGridColumn headerText="Resumen" dataField="@TASK_RESUME" />
<mx:AdvancedDataGridColumn headerText="Comienzo" dataField="@DATE_EXPECTED_START_TASK" itemEditor="DateEditor" editorDataField="text"
textAlign="center" width="100"/>
<mx:AdvancedDataGridColumn headerText="Objetivo" dataField="@DATE_EXPECTED_END_TASK" itemEditor="DateEditor" editorDataField="text"
textAlign="center" width="100"/>
<mx:AdvancedDataGridColumn headerText="Proyectada" dataField="@DATE_TASK_PROYECTED" itemEditor="DateEditor" editorDataField="text"
textAlign="center" width="100"/>
<mx:AdvancedDataGridColumn headerText="Real" dataField="@DATE_TASK_MODIFIED" itemEditor="DateEditor" editorDataField="text"
textAlign="center" width="100"/>
<mx:AdvancedDataGridColumn headerText="Cumplimiento" dataField="@COMPLIANCE" textAlign="center" width="100" editable="false"/>
</mx:columns>
</mx:AdvancedDataGrid>
</mx:Application>
[/code]

y el codigo de DateEditor es:

[code]
<mx:DateField xmlns:mx="http://www.adobe.com/2006/mxml" dayNames="['D', 'L', 'M', 'M', 'J', 'V', 'S']" formatString="DD/MM/YYYY" yearNavigationEnabled="true"
monthNames="['Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre']"
implements="mx.controls.listClasses.IListItemRenderer" focusIn="open()" change="dateChanged(event);">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.events.CalendarLayoutChangeEvent;
import mx.events.AdvancedDataGridEvent;
import mx.controls.AdvancedDataGrid;

override public function set data(value:Object):void{
if(listData){
var newDate:Date;
if (value is String){
newDate = new Date(Date.parse(value as String));
selectedDate = newDate;
super.data=newDate;
}else if (value is Date){
super.data=value as Date;
}
}
}

// Event handler for the DateField change event.
private function dateChanged(e:Event):void {
//mx.controls.Alert.show( e.target.toString() + e.type + e.currentTarget.selectedDate );
//adgTask.itemEditorInstance.text;
}

]]>
</mx:Script>
</mx:DateField>
[/code]

Gracias de antemano.