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




Reply via email to