Я думаю, что для StudyId может быть лучше обратиться к dataGrid, а не к dataGrid со ссылкой на studyId. Вы можете добавить это в свой основной mxml:
<mx:TextArea id="studyId" text="{dataGrid.selectedItem.Study}"/>
Это должно работать, потому что TextArea.text будет реагировать на событие изменения свойства объекта DataGrid.selectedItem, поэтому оно будет меняться при каждом выборе.
РЕДАКТИРОВАТЬ: Отправка событий:
Вы можете отправить событие из любого места в вашем коде, и слушатели смогут прослушать это событие. Например:
<mypackage:MyComponent>
...
private function foo():void
{
dispatchEvent(new MouseEvent(MouseEvent.CLICK)); // Dispatches a mouse event whenever foo is called.
}
Теперь вы можете прослушать это событие:
<mypackage:MyComponent id="myComponent"/>
...
myComponent.addEventListener(MouseEvent.CLICK, mouseClickHandler);
private function mouseClickHandler(event:MouseEvent):void
{
... // code to handle that event here.
}
Надеюсь, это поможет!
<mx:MainComponent creationComplete="init()" ...>
...
private function init(event:Event):void
{
...
customComponent.addEventListener(StudyEvent.STUDYSELECTED, studySelectedListener);
...
}
private function studySelectedListener(event:StudyEvent):void
{
studyid.text = event.study.studyId; // or wherever you store your studyId value
...
}
...
<mx:MainComponent/>
Что происходит, когда событие StudyEvent.STUDYSELECTED вызывается из вашего customComponent, оно будет перехвачено вашей основной функцией и будет вызван studySelectedListener.