2010-09-26 81 views
0

我有一個數組集合如下如何將selectedIndex針對Flex DownDownList

var myArr:ArrayCollection = new ArrayCollection([ 
       {label: "label1", data: "data1"}, 
       {label: "label2", data: "data2"}]); 

而且一個下拉列表

<s:DropDownList id="myDDL" 
       dataProvider="{myArr}" /> 

如何設置基礎上的項目編號爲myDDL所選項目(身份識別碼) ?我想是這樣的:

selectedIndex = {myArr.getItemIndex(myID)} 

但沒有奏效。

回答

2

您是否在MXML中設置了selectedIndex?還是ActionScript?由於您使用綁定語法,因此我認爲您想使用MXML。你不能綁定到一個函數的結果;只有一個財產。在內部,綁定使用「propertyChange」事件,以便Flex知道值何時更改。該事件在setter函數中調度(對於Flex Framework中實現的大多數屬性)。

功能沒有等效的並行功能。你應該能夠做到在AS3分配W/O型的任何問題,但:

selectedIndex = myArr.getItemIndex(myID) 

你需要確保「身份識別碼」是你的數據提供程序的元素,但。像這樣的事情在理論上應當工作:

myID = {label: "label1", data: "data1"} 

然而,有可能的是,「getItemIndex」檢查的存儲位置,而不是實際值進行比較。如果是這樣,那麼你需要做的事。是這樣的:

myID = myArr[0] 

對於代碼工作

+0

很好的解釋感謝。 – Tam 2010-09-26 18:56:54