Hank is correct, but if you are working on a prototype or something and are 
editing data in place 
you might want to try a call to currentUsersList.refresh() and see if your 
changes show up.

I have the following: 

            private function sampleMessageHandler( e : MessageEvent) : void
            {
                conversation += e.message.headers.sender + " / " +
                    e.message.headers.type + " / " +
                    e.message.headers.oper +
                    ": " + e.message.body + "\n";
                
                if (e.message.headers.type == "data") {
                    if (e.message.headers.oper == "add") {
                        var obj : Object = new Object();
                        obj.col1 = e.message.body;
                        myData.addItem(obj);
                    } else if (e.message.headers.oper == "lock") {
                        var myCursor : IViewCursor = myData.createCursor();
                        while (!myCursor.afterLast) {
                            if (myCursor.current.col1 == e.message.body) {
                                myCursor.current.col2 = 
e.message.headers.sender;
                                myData.refresh();
                                break;
                            }
                            myCursor.moveNext();
                        }
                        
                    }
                }
            }

The changes don't show up in the grid until the myData.refresh();


--Sean

----- Original Message ----
From: hank williams <[EMAIL PROTECTED]>
To: [email protected]
Sent: Monday, March 12, 2007 6:16:37 PM
Subject: Re: [flexcoders] Data Binding to Item in ArrayCollection









  


    
            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] com> 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.currentUsers List.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







    
  

    
    




<!--

#ygrp-mlmsg {font-size:13px;font-family:arial,helvetica,clean,sans-serif;}
#ygrp-mlmsg table {font-size:inherit;font:100%;}
#ygrp-mlmsg select, input, textarea {font:99% arial,helvetica,clean,sans-serif;}
#ygrp-mlmsg pre, code {font:115% monospace;}
#ygrp-mlmsg * {line-height:1.22em;}
#ygrp-text{
font-family:Georgia;
}
#ygrp-text p{
margin:0 0 1em 0;
}
#ygrp-tpmsgs{
font-family:Arial;
clear:both;
}
#ygrp-vitnav{
padding-top:10px;
font-family:Verdana;
font-size:77%;
margin:0;
}
#ygrp-vitnav a{
padding:0 1px;
}
#ygrp-actbar{
clear:both;
margin:25px 0;
white-space:nowrap;
color:#666;
text-align:right;
}
#ygrp-actbar .left{
float:left;
white-space:nowrap;
}
.bld{font-weight:bold;}
#ygrp-grft{
font-family:Verdana;
font-size:77%;
padding:15px 0;
}
#ygrp-ft{
font-family:verdana;
font-size:77%;
border-top:1px solid #666;
padding:5px 0;
}
#ygrp-mlmsg #logo{
padding-bottom:10px;
}

#ygrp-vital{
background-color:#e0ecee;
margin-bottom:20px;
padding:2px 0 8px 8px;
}
#ygrp-vital #vithd{
font-size:77%;
font-family:Verdana;
font-weight:bold;
color:#333;
text-transform:uppercase;
}
#ygrp-vital ul{
padding:0;
margin:2px 0;
}
#ygrp-vital ul li{
list-style-type:none;
clear:both;
border:1px solid #e0ecee;
}
#ygrp-vital ul li .ct{
font-weight:bold;
color:#ff7900;
float:right;
width:2em;
text-align:right;
padding-right:.5em;
}
#ygrp-vital ul li .cat{
font-weight:bold;
}
#ygrp-vital a {
text-decoration:none;
}

#ygrp-vital a:hover{
text-decoration:underline;
}

#ygrp-sponsor #hd{
color:#999;
font-size:77%;
}
#ygrp-sponsor #ov{
padding:6px 13px;
background-color:#e0ecee;
margin-bottom:20px;
}
#ygrp-sponsor #ov ul{
padding:0 0 0 8px;
margin:0;
}
#ygrp-sponsor #ov li{
list-style-type:square;
padding:6px 0;
font-size:77%;
}
#ygrp-sponsor #ov li a{
text-decoration:none;
font-size:130%;
}
#ygrp-sponsor #nc {
background-color:#eee;
margin-bottom:20px;
padding:0 8px;
}
#ygrp-sponsor .ad{
padding:8px 0;
}
#ygrp-sponsor .ad #hd1{
font-family:Arial;
font-weight:bold;
color:#628c2a;
font-size:100%;
line-height:122%;
}
#ygrp-sponsor .ad a{
text-decoration:none;
}
#ygrp-sponsor .ad a:hover{
text-decoration:underline;
}
#ygrp-sponsor .ad p{
margin:0;
}
o {font-size:0;}
.MsoNormal {
margin:0 0 0 0;
}
#ygrp-text tt{
font-size:120%;
}
blockquote{margin:0 0 0 4px;}
.replbq {margin:4;}
-->








 
____________________________________________________________________________________
Finding fabulous fares is fun.  
Let Yahoo! FareChase search your favorite travel sites to find flight and hotel 
bargains.
http://farechase.yahoo.com/promo-generic-14795097

Reply via email to