Flex: ItemEditor теряет фокус!

Вот изображение моей проблемы: я использую комбо-бокс в качестве редактора элементов данных Datagrid (не только рендер, мой рендерер - это метка, двойной щелчок по ячейке делает видимым комбо-бокс, как и в случае со всеми элементами). редактора)

Теперь, выбор одной из записей в поле со списком не проблема. Но моя проблема только тогда, когда я выбираю "Fruit", который в свою очередь открывает другой слой под названием "Select Fruit"

Вопросы:

Как сохранить редактор элементов, пока фокус находится на слое; прямо сейчас, как только я нажимаю на фрукт, мой обработчик выскакивает диалоговое окно "Выбор фруктов", и фокус находится на слое. Как только фокус исчезает из редактора, ItemEditor исчезает и возвращается метка ItemRenderer.

Я хочу сохранить ItemEditor в живых! где я могу подключить промежуточные события, такие как начало / конец ItemEdit и т. д.?

Flex: Редактор предметов, теряющий фокус

2 ответа

Решение

Вы можете поддержать ваш itemEditor, прослушивая DataGridEvent.ITEM_EDIT_END. Тогда у вас будет намного больше контроля, чтобы делать то, что вы хотите. Кое-что из моего блога:

DataGridEvent.ITEM_EDIT_END - Отправляется при удалении фокуса из ячейки - прослушиватель событий по умолчанию для элемента управления на основе списка будет

1) использовать свойство.editorDataFrield, чтобы определить свойство редактора элементов для хранения отредактированных данных; В редакторе элементов элемента управления TextInput по умолчанию свойство "text" будет содержать новые данные.

2) Вызвать destoryItemEditor() в зависимости от причины события

  • Вы можете прервать прослушиватель событий по умолчанию для элемента управления по умолчанию, используя функцию event.preventDefault() для

а) Изменить данные, возвращаемые из редактора элементов

б) проверить / проверить данные, введенные в редакторе элементов; Если данные неверны, вы можете остановить Flex, передав данные обратно из редактора элементов в элемент управления на основе списка.

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

Попробуйте потерять фокус вашего 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);

}
Другие вопросы по тегам