DataGridでアイテムをクリックすると、テキストエリアにアイテムの値が表示されますが、ここではコンポーネントが分かれているため、イベントをディスパッチする必要があります。DataGridのItemclickイベント
My mxml component file :
<?xml version="1.0" encoding="utf-8"?>
<mx:DataGrid xmlns:mx="http://www.adobe.com/2006/mxml" itemClick="itemClickEvent(event);" creationComplete="init()">
<mx:Metadata>
[Event(name="IdSelected", type="one.IdEvent")]
</mx:Metadata>
<mx:Script>
<![CDATA[ import genericReport.*;
import crewUtilization.*;
import utils.*;
import studies.*;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.controls.Alert;
import mx.events.ListEvent;
private function itemClickEvent(event:ListEvent):void
{
var _study:Object=event.currentTarget.selectedItem.study;
dispatchEvent(new IDEvent(_ID));
}
]]>
</mx:Script>
<mx:columns>
<mx:DataGridColumn dataField="name" />
<mx:DataGridColumn dataField="userId" />
</mx:columns>
</mx:DataGrid>
///////////////////////////////////////////////////////////////////// ////////////////////
これは私のメインMXMLアプリケーションファイルである:私はstudyIdを参照することがより良いかもしれないと思う
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:custom="*">
<mx:TitleWindow label="Scenario Creation" xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:ns1="ccCreation.*">
<mx:Label text="CC CREATION" width="100%" />
<mx:VBox width="100 %" styleName="scenariovboxStyle">
<custom:studySelector id="dg" />
</mx:VBox>
</mx:TitleWindow>
</mx:Application>
ねえ...提案してくれてありがとう....しかし、 "Study"は "StudyId、name and userId"で構成されたオブジェクトです。私はstudyIdだけを表示しなければならない。また、私のItemClickイベントは正しいですか?つまり、メインのmxmlファイルを変更してそのままitemclickイベントを保持すると、コードは動作しますか? – user120118
オブジェクトにStudyIdとUserIdがメンバーとして含まれている場合、selectedItem.StudyをselectedItem.StudyIdに置き換えることができます。これはselectedItemがオブジェクト(Study)を参照するためです。 textAreaにアクセスできない場合を除き、itemClickHandlerは正しいです。あなたのイベントハンドラに固執したいなら、あなたのitemClickHandlerからイベントをディスパッチすることができます。あなたのメインは、そのイベントをキャッチし、textAreaを設定することによって応答する必要があります。これは私が提案したものと似ていますが、ハンドラはバインド可能なプロパティを使用するだけで隠されています。 – CookieOfFortune
もう一つのオプションは、メインクラスをプロパティとして持つサブクラスでDataGridを拡張することです。その後、メインに含まれるすべてのコンポーネントにアクセスできます。 – CookieOfFortune