I now think it know the part of the equation that I am missing, but
correct me if I am wrong...
Data Binding in a TextInput field is ONE WAY. That is, when you
bind the text property of a TextInput field to a data source, it will
receive changes from the source, HOWEVER, it will not automatically
UPDATE the data source when the value is changed in the TextInput Field.
I think that is where I was going wrong is that I assumed by binding
the TextInput field to the ModelLocator, changes to the Text Field
would be broadcast back to the ModelLocator variable it was bound to.
I don't know why I thought that, but I think that is why I had
trouble wrapping my head around this one.
Thanks for helping the light bulb go off.
- Kevin
On Mar 12, 2007, at 6:16 PM, hank williams wrote:
Kevin,
In a cairngorm app, you want to detect the change to the row and
then send it to the server. If the server accepts the change then
in the response to the command object you change the item in the
arrayCollection which is then reflected in your data grid, which is
bound to the arrayCollection. If you dont do it this way then your
data model is not in sync with the server, which you want to avoid.
By the way you want to use the functions of the arrayCollection to
change the data because otherwise events that cause the datagrid to
update will not be triggered.
Hank
On 3/12/07, Kevin <[EMAIL PROTECTED]> wrote:
I am working on a Cairngorm app. I have a simple User Admin
Interface. The ModelLocator stores a list of all the Users as
currentUsersList: ArrayCollection
I populate a small DataGrid with this list and everything is
working fine. To edit the list, the user can click on a row in the
DataGrid and then edit the information. The problem is that for
some reason the changed information isn't getting changed in the
DataGrid like it should. What is the proper way to bind a control
to an individual item in an ArrayCollection?
I first tried to create a variable in the ML to hold the UserDataVO
that had been selected:
selectedUser: UserDataVO = currentUsersList[some selected index];
However, this seems to 'copy' (rather than reference) the VO from
the Array collection and thus changes to this VO do not get
reflected in the original ArrayCollection
I then tried to bind directly to the ArrayCollection items using
getItemAt
text = {model.currentUsersList.getItemAt(selectedIndex).username}
However, this doesn't seem to work to modify the original values in
the ArrayCollection. What am I doing wrong. I don't think it
should be this hard.
Thanks, Kevin