spacecadet
15.01.2010, 11:33
Доброго времени суток всем!
Возник следующий вопрос: как реализовать редактирование списка List по двойному щелчку? Свойство editable для List ставлю в false, так как он служит списком выбора, и одиночный щелчок обрабатывается для изменения порядка отображения неких данных. Делаю примерно вот так:
<mx:List ... dataProvider="{comboList}" labelField="ObjExName" id="lstObj" doubleClickEnabled="true" click="selectObj()" doubleClick="changeList()" editable="false"></mx:List>
...
private function changeList():void
{
if (lstObj.selectedIndex != -1)
{
lstObj.createItemEditor(0,lstObj.selectedIndex);
(lstObj.itemEditorInstance as TextInput).text = comboList[lstObj.selectedIndex].ObjExName;
(lstObj.itemEditorInstance as TextInput).setFocus();
(lstObj.itemEditorInstance as TextInput).addEventListener(FocusEvent.FOCUS_OUT,editEnd);
}
}
private function editEnd(e:FocusEvent):void
{
comboList[lstObj.selectedIndex].ObjExName = (lstObj.itemEditorInstance as TextInput).text;
lstObj.destroyItemEditor();
}
...
То есть по даблклику создаю итемедитор, добаляю прослушку к событию потери фокуса, что по моему мнению должно означать конец редактирования и соответственно в конце уничтожаю итемедитор. Создается он успешно, но вот при окончании редактирования возникает ошибка "Не удается вызвать свойство или метод со ссылкой на объект "null". Помогите разобраться!
Возник следующий вопрос: как реализовать редактирование списка List по двойному щелчку? Свойство editable для List ставлю в false, так как он служит списком выбора, и одиночный щелчок обрабатывается для изменения порядка отображения неких данных. Делаю примерно вот так:
<mx:List ... dataProvider="{comboList}" labelField="ObjExName" id="lstObj" doubleClickEnabled="true" click="selectObj()" doubleClick="changeList()" editable="false"></mx:List>
...
private function changeList():void
{
if (lstObj.selectedIndex != -1)
{
lstObj.createItemEditor(0,lstObj.selectedIndex);
(lstObj.itemEditorInstance as TextInput).text = comboList[lstObj.selectedIndex].ObjExName;
(lstObj.itemEditorInstance as TextInput).setFocus();
(lstObj.itemEditorInstance as TextInput).addEventListener(FocusEvent.FOCUS_OUT,editEnd);
}
}
private function editEnd(e:FocusEvent):void
{
comboList[lstObj.selectedIndex].ObjExName = (lstObj.itemEditorInstance as TextInput).text;
lstObj.destroyItemEditor();
}
...
То есть по даблклику создаю итемедитор, добаляю прослушку к событию потери фокуса, что по моему мнению должно означать конец редактирования и соответственно в конце уничтожаю итемедитор. Создается он успешно, но вот при окончании редактирования возникает ошибка "Не удается вызвать свойство или метод со ссылкой на объект "null". Помогите разобраться!