2011-07-19 11 views
2

私の問題のイメージは次のとおりです。 データグリッドのItemEditorとしてコンボボックスを使用しています(レンダリングだけでなく、レンダリングがラベルであるため、セルをダブルクリックするとコンボボックスが表示されます)フレックス:ItemEditorフォーカスを失う!

ここで、コンボボックスのエントリの1つを選択することは問題ありません。私は順番にポップと呼ばれる別の層を開いて「果物」を、選択した場合でも、私の問題があるだけで、ダイアログ

質問「フルーツを選択」:

をフォーカスが層の上にある間、私は、アイテムエディタを保つにはどうすればよいです;今すぐフルーツをクリックすると、ハンドラのポップアップで「果物の選択」ダイアログが表示され、フォーカスがレイヤーに表示されます。エディタからフォーカスが外れると、ItemEditorが消え、ItemRendererのラベルが戻ってきます。

私はItemEditorを生かしたいです! ItemEditなどの開始/終了のようなイベントのインターミックスはどこにありますか?

Flex: Item editor, losing focus!

+1

いくつかのコードがありますか?私はたぶん、カスタムエディタを使ってアイテムレンダラーを作成するのではなく、表示されているアイテムや(いつでも巧妙な状態で入れておく)コントロールすることができます。 – Nate

答えて

1

あなたはDataGridEvent.ITEM_EDIT_ENDのために聞くことによって生きているあなたのitemEditorを維持することができます。それから、あなたが望むことをするためには、より多くのコントロールがあります。 FYI私のブログからいくつか:

DataGridEvent.ITEM_EDIT_END - フォーカスがセル から削除されたときに送出されます - リストベースのコントロールのデフォルトのイベントリスナーをします

1)のプロパティをdeterineする.editorDataFrieldプロパティを使用編集されたデータを格納するアイテムエディタと、デフォルトのTextInputコントロールのアイテムエディタでは、 "text"プロパティに新しいデータが含まれます。

2)を呼び出しdestoryItemEditor()

  • あなたはevent.preventDefault()を使用して、デフォルトのリストベースのコントロールのデフォルトのイベントリスナーを中断することができ、イベントの理由に応じて

)アイテムエディタから返されたデータを変更します。

b)アイテムエディタに入力されたデータを検査/検証します。データが正しくない場合は、リストベースのコントロール

http://knowledge.lapasa.net/?p=153

0

に戻すアイテムエディタからデータを渡すのFlexを停止することができ、あなたのitemEditorのフォーカスを失ってみてください。コンボボックスの変更リスナー

protected function comboBox_changeHandler(event:ListEvent):void 
{ 
// set focus out event on datagrid. Its like clicking outside the datagrid 
event.target.parent.parent.parent.dispatchEvent(new FocusEvent(FocusEvent.FOCUS_OUT); 

} 
関連する問題