flex-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alex Harui <aha...@adobe.com>
Subject Re: Combo box and binding
Date Mon, 18 Nov 2013 18:44:20 GMT
Remember that Flex components use invalidation, so setting selectedIndex
won't affect selectedItem immediately.

If you are still having issues, it might be best to post a 20-line test
case.  I'm not longer sure what your code looks like.

-Alex

On 11/18/13 10:03 AM, "mark goldin" <markzolotoy@gmail.com> wrote:

>No, it's not unless I am missing something. I did step into the setter
>which is triggered when a new value is assigned to comboValue. In fact, I
>have changed:
>
>comboValue = _item.value;
>ArrayCollection(dataProvider).addItemAt(_item, 0);
>to
>ArrayCollection(dataProvider).addItemAt(_item, 0);
>comboValue = _item.value;
>
>so, in the setter it correctly creates selectedItem.
>Interesting that when I check combobox's selectedIndex outside of combo
>class it still shows -3 although the selectedItem has a new value.
>
>
>On Mon, Nov 18, 2013 at 11:55 AM, Alex Harui <aharui@adobe.com> wrote:
>
>> Is the value of _item.value changing?
>>
>> Best thing to do is to step into the setter call.
>>
>> On 11/18/13 9:40 AM, "mark goldin" <markzolotoy@gmail.com> wrote:
>>
>> >I agree about the getter. But the setter is triggered after this line
>> >comboValue
>> >= _item.value;
>> >
>> >
>> >On Mon, Nov 18, 2013 at 11:30 AM, Kessler CTR Mark J <
>> >mark.kessler.ctr@usmc.mil> wrote:
>> >
>> >> I believe this is not sending change events for your getter... based
>>on
>> >>it
>> >> not having a setter that is being triggered.
>> >>
>> >> -Mark
>> >>
>> >> -----Original Message-----
>> >> From: mark goldin [mailto:markzolotoy@gmail.com]
>> >> Sent: Monday, November 18, 2013 12:15 PM
>> >> To: users
>> >> Subject: Re: Combo box and binding
>> >>
>> >> I tried setting a setter to be Bindable, it did not help.
>> >>
>> >>
>> >> On Mon, Nov 18, 2013 at 11:09 AM, Mark Line <markline@gmail.com>
>>wrote:
>> >>
>> >> > I think you need the Bindable meta tag on the set function of the
>> >>getter
>> >> > and setter. i'm not in front of flash builder to test though...
>> >> >
>> >> >
>> >> > On 18 November 2013 16:57, mark goldin <markzolotoy@gmail.com>
>>wrote:
>> >> >
>> >> > > BindingUtils.bindProperty(combobox, "comboValue", model, "field",
>> >> true);
>> >> > >
>> >> > > Here is my relative combobox code:
>> >> > > private var _comboValue:*;
>> >> > > public function set comboValue(value:*):void
>> >> > > {
>> >> > >  // simplified
>> >> > > for each (var listItem:* in dataProvider){ if (listItem.value]
==
>> >> > > _comboValue){ selectedItem = listItem; break; } }
>> >> > > }
>> >> > > [Bindable]
>> >> > > public function get comboValue():*
>> >> > > {
>> >> > > return _comboValue;
>> >> > > }
>> >> > > addEventListener(IndexChangeEvent.CHANGING, onChange, false, 0,
>> >>true);
>> >> > >
>> >> > > private function onChange(event:IndexChangeEvent):void
>> >> > > {
>> >> > >    if (selectedIndex > -1)
>> >> > >      comboValue = selectedItem.value;
>> >> > >    else  // new item
>> >> > >    {
>> >> > >         var _item:Object = new Object();
>> >> > > _item.value = textInput.text;
>> >> > > comboValue = _item.value;
>> >> > > ArrayCollection(dataProvider).addItemAt(_item, 0);
>> >> > >    }
>> >> > > }
>> >> > >
>> >> > > When I add a new item the underlying model is not getting the
new
>> >>value
>> >> > and
>> >> > > I have to manually assign to it:
>> >> > > model.field = combobox.selectedItem["value"];
>> >> > >
>> >> > > Any idea?
>> >> > >
>> >> > > Thanks
>> >> > >
>> >> >
>> >>
>>
>>


Mime
View raw message