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" <[email protected]> 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 <[email protected]> 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" <[email protected]> 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 < >> >[email protected]> 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:[email protected]] >> >> 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 <[email protected]> >>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 <[email protected]> >>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 >> >> > > >> >> > >> >> >> >>
