Actually, whether you create an ArrayCollection or not, we will so it is
the same memory either way.  List classes and ComboBox only actually
work with collections.  If you hand us a bare array, we wrap it, if you
hand us an ArrayCollection, we take it as is.

 

IMHO, I recommend:

<mx:ComboBox
initialize="LICST.dataProvider="Application.application.StateListArray"
prompt="" id="LICST"/>



CreationComplete is late and can cause an extra rendering pass.
"initialize" is earlier.  Also you avoid the overhead of the binding
setup for something that may never change.

 

Assigning values of other objects as the value of MXML attributes is a
long-standing annoyance of XML in general.  Wish there was a better way,
but if you want to optimize startup, don't use binding unless you plan
to change it later.

 

________________________________

From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On
Behalf Of James
Sent: Friday, June 01, 2007 11:35 AM
To: flexcoders@yahoogroups.com
Subject: [flexcoders] Re: Data binding will not be able to detect
changes when using--I know I know

 

Thanks for the help. You guessed correctly.

Here is how I am using it:

<mx:ComboBox dataProvider="{Application.application.StateListArray}"
prompt="" id="LICST"/>

So now with your advice it would be:

<mx:ComboBox
creationComplete="event.currentTarget.dataProvider=Application.applicati
on.StateListArray"
prompt="" id="LICST"/>

Correct?

The former "incorrect" method seems more intuitive to me.

I am not afraid of ArrayCollections nor the events. I just don't see a
reason to use more memory than necessary, and in this case (and
similar cases) I really can just use a simple array for my needs
without the overhead of an ArrayCollection or extra events.

Granted it may not be much overhead saved, but it does add up I would
think.

Thanks again,
James Wilson

 

Reply via email to