Binding to array object elements' demo

1.自定義對象類

package
{
	public class UserVO
	{
		
		//--------------------------------------------------------------------------
		//
		//  Constructor
		//
		//--------------------------------------------------------------------------		
		
		public function UserVO()
		{
		}
		
		//--------------------------------------------------------------------------
		//
		//  Properties
		//
		//--------------------------------------------------------------------------
		
		private var _username:String;

		public function get username():String
		{
			return _username;
		}

		public function set username(value:String):void
		{
			_username = value;
		}
	}
}

2.MXML文件

<?xml version="1.0"?>
<s:Application 
	xmlns:fx="http://ns.adobe.com/mxml/2009"
	xmlns:s="library://ns.adobe.com/flex/spark"
	xmlns:mx="library://ns.adobe.com/flex/mx"
	height="600" preinitialize="preinitializeHandler(event)">
	
	<fx:Script>
		<![CDATA[
			import mx.collections.ArrayCollection;
			import mx.events.FlexEvent;
			
			[Bindable]
			private var users:ArrayCollection = new ArrayCollection();
			
			protected function preinitializeHandler(event:FlexEvent):void
			{
				//initialize the data
				users.addItem(new UserVO());
			}
			
			protected function changeBtn_clickHandler(event:MouseEvent):void
			{
				//change the item's username value
				var user:UserVO = new UserVO();
				
				user.username = "daniel";
				
				//reset the item
				users.setItemAt(user, 0);
				
			}
			
		]]>
	</fx:Script>
	
	<s:HGroup >
		
		<s:TextInput text="username:{UserVO(users.getItemAt(0)).username}" />
		
		<s:Button label="change" id="changeBtn" click="changeBtn_clickHandler(event)" />
		
	</s:HGroup>
	
</s:Application>




注意更新值時必須爲某索引的項整個對象重新賦值,而不能只更新該項的字段值,如users.getItemAt(0).username = "daniel",這顯示不了綁定的效果。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章