关于datagrid的数据绑定有关问题

关于datagrid的数据绑定问题
将 一个 arrayCollection 作为 datagrid的dataProvider,并进行绑定。

之后 arrayCollection 里面的对象发生属性改变,datagrid上相应的列无法做出相应的变化,除非重新指定dataProvider 或者 执行arrayCollection.refresh()

而arrayCollection 在添加新成员操作后就可以 同步地将自身成员属性的变化 反应在 datagrid上。

原因目前还不清楚,找个空再查查。


<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="init()">
	
		<mx:DataGrid x="24" y="122" width="526" height="241"  
			id="dt"  editable="true" 
			dataProvider="{dataList}">
			<mx:columns>
				<mx:DataGridColumn headerText="choose" width="30" editable="false" >
					<mx:itemRenderer>
						<mx:Component>
							<mx:CheckBox   selected="{data.check}">
								
							</mx:CheckBox>
						</mx:Component>
					</mx:itemRenderer>  
				</mx:DataGridColumn> 
            	<mx:DataGridColumn headerText="name" width="150" dataField="memberName" editable="false"/>
				<mx:DataGridColumn headerText="value" width="150" dataField="relAmt" editable="true" /> 
         		
         	</mx:columns>
		</mx:DataGrid>
		
		<mx:Script>
		<![CDATA[
			import mx.binding.utils.BindingUtils;
			import mx.collections.ArrayCollection;
			[Bindable]	
			private var dataList:ArrayCollection = new ArrayCollection();
			
			
			private function init():void{
				var dataNode:Object = new Object();
				dataNode.check = false;
				dataNode.memberName = "adasd";
				dataNode.relAmt = "121";
				dataList.addItem(dataNode);
				
			}
			
			private function changDataValue():void{
				for each (var node:Object in dataList){
					node.check = true;
					node.relAmt = "000";
				}
//				dataList.refresh();
//				dt.dataProvider = dataList;
			}
			
			private function addNewData():void{
				var dataNode:Object = new Object();
				dataNode.check = false;
				dataNode.memberName = "tt";
				dataNode.relAmt = "22";
				dataList.addItem(dataNode);
			}
		]]>
	</mx:Script>
		<mx:Button x="156" y="77" label="changDataValue" click="changDataValue()"/>
		<mx:Button x="24" y="77" label="addNewData" click="addNewData()"/>
</mx:Application>