Получить измененное значение Item из ItemRenderer в списке - PullRequest
0 голосов
/ 22 июня 2011

У меня есть список с textInput как itemrenderer. Первоначально список загружается данными от поставщика данных. Однако, поскольку элементы отображаются в textInputs, у меня есть возможность изменить значение определенного элемента.

Но при попытке получить доступ к значению измененного элемента с помощью функции ниже, я все равно получаю старое значение в моем следе:

private function addItem(event:Event):void {
    trace(myDataProvider.getItemAt(myList.selectedIndex).label);
}

Может кто-нибудь сказать мне, что мне нужно сделать, чтобы новое значение было доступно. Мой itemrenderer показан ниже:

<?xml version="1.0" encoding="utf-8"?>
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
                xmlns:s="library://ns.adobe.com/flex/spark" 
                xmlns:mx="library://ns.adobe.com/flex/mx" 
                xmlns:components="components.*"
                >
<s:layout> 
    <s:HorizontalLayout/> 
</s:layout> 

<fx:Script>
    <![CDATA[


        override public function set data( value:Object ) : void {
            super.data = value;
        }

        protected function myTextInput_enterHandler(event:FlexEvent):void
        {

            trace(myTextInput.text);
                            What Next??


        }


    ]]>
</fx:Script>

<components:myComp1 text="{data.label}" id="myTextInput" enter="myTextInput_enterHandler(event)"/>
</s:ItemRenderer>

Спасибо за вашу помощь .. всем.

1 Ответ

0 голосов
/ 22 июня 2011

Попробуйте использовать:

<?xml version="1.0" encoding="utf-8"?>
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
                xmlns:s="library://ns.adobe.com/flex/spark" 
                xmlns:mx="library://ns.adobe.com/flex/mx" 
                xmlns:components="components.*"
                >
<s:layout> 
    <s:HorizontalLayout/> 
</s:layout> 

<fx:Script>
    <![CDATA[


        override public function set data( value:Object ) : void {
            super.data = value;
        }

        protected function myTextInput_enterHandler(event:FlexEvent):void
        {
            trace(myTextInput.text);
            data.label = myTextInput.text;
        }


    ]]>
</fx:Script>

<components:myComp1 text="{data.label}" id="myTextInput" enter="myTextInput_enterHandler(event)"/>
</s:ItemRenderer>
...