发现FLEX4和3 有一些细微的不同, 直接给dataProvider赋值会出现类型转换错误!!! <?xml version="1.0" encoding="utf-8"?> <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" minWidth="955" minHeight="600"> <s:layout> <s:BasicLayout/> </s:layout> <fx:Script> <!--[CDATA[ import spark.events.IndexChangeEvent; protected function province_changeHandler(event:IndexChangeEvent):void { var xx:XMLListCollection = new XMLListCollection(); xx.source=event.target.selectedItem.city; city.dataProvider = xx; city.selectedIndex = 0; } ]]--> </fx:Script> <fx:Declarations> <s:XMLListCollection id="provinceList"> <fx:XMLList xmlns=""> <province name="吉林" value="1"> <city name="长春" value="2"> <district name="站北区" value="55"></district> <district name="红河镇" value="56"></district> </city> <city name="梅河口" value="3"> <district name="城南区" value="57"></district> <district name="汤港镇" value="58"></district> </city> </province> <province name="辽宁" value="12"> <city name="沈阳" value="4"> <district name="和平区" value="59"></district> </city> <city name="鞍山" value="5"> <district name="瓦房店" value="60"></district> </city> <city name="大连" value="8"> <district name="金州区" value="61"></district> <district name="虎石台" value="62"></district> </city> </province> <province name="黑龙江" value="22"> <city name="哈尔滨" value="7"> <district name="红水镇" value="63"></district> </city> </province> </fx:XMLList> </s:XMLListCollection> </fx:Declarations> <s:DropDownList id="province" dataProvider="{provinceList}" labelField="@name" x="10" y="29" change="province_changeHandler(event)"></s:DropDownList> <s:DropDownList id="city" labelField="@name" x="10" y="58"></s:DropDownList> </s:Application>