2

これが私の問題のイメージです:データグリッドItemEditorとしてコンボボックスを使用しています(レンダラーだけでなく、私のレンダラーはラベルです。セルをダブルクリックすると、すべてのアイテムの場合と同様に、コンボボックスが表示されます。編集者)

これで、コンボボックスのエントリの1つを選択しても問題ありません。しかし、私の問題は、「フルーツ」を選択した場合のみです。これにより、「フルーツの選択」ダイアログと呼ばれる別のレイヤーがポップアップ表示されます。

質問:

レイヤーに焦点を合わせながら、アイテムエディターを維持するにはどうすればよいですか。今、果物をクリックするとすぐに、ハンドラーが[果物の選択]ダイアログを表示し、レイヤーにフォーカスが移ります。フォーカスがエディターから外れると、ItemEditorが消え、ItemRendererラベルが戻ります。

ItemEditorを存続させたい!ItemEditの開始/終了などのイベントの中間をどこに接続しますか?

フレックス:アイテムエディタ、フォーカスを失います!

4

2 に答える 2

1

DataGridEvent.ITEM_EDIT_ENDをリッスンすることにより、itemEditorを存続させることができます。そうすれば、やりたいことを実行するためのより多くの制御が可能になります。私のブログからのいくつかの参考文献:

DataGridEvent.ITEM_EDIT_END-フォーカスがセルから削除されたときにディスパッチされます-リストベースのコントロールのデフォルトのイベントリスナーは

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

2)イベントの理由に応じてdestoryItemEditor()を呼び出します

  • event.preventDefault()を使用して、デフォルトのリストベースのコントロールのデフォルトのイベントリスナーを中断できます。

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

b)アイテムエディタに入力されたデータを調べて検証します。データが正しくない場合は、Flexがデータをアイテムエディタからリストベースのコントロールに戻すのを停止できます。

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

于 2011-07-19T17:29:09.800 に答える
0

ItemEditorのフォーカスを失ってみてください。Goto Combo Box Change Listener

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);

}
于 2014-05-07T21:21:17.580 に答える