2010-01-04 81 views
0

我試圖將一個對象的屬性綁定到一個ComboBox的(可編輯= true)文本屬性。該屬性的類型爲Number。Flex數據綁定

如果我綁定使用內聯語法,它的工作原理:

<mx:ComboBox text="{myObj.prop}"> 

如果我綁定使用MX:綁定,我收到一個錯誤:

<mx:Binding source="{myObj.prop}" destination="combobox.text" /> 

// 1067: Implicit coercion of a value of type Number to an unrelated type String. 

行爲爲什麼這種差異?

屬性定義:

private var _prop: Number; 

[Bindable] public function get prop(): Number { return _prop; } 
public function set prop(value: Number): void { _prop = value; } 

回答

1

起初我以爲:mx:Binding來源應該是字段名稱本身,而不是價值。 Flex是抱怨,因爲它被提領myObj.prop因爲{}的,看到有值(一個Number),當它想用字段名的字符串。

<mx:Binding source="myObj.prop" destination="combobox.text" /> 

然而:

的ActionScript大括號內是允許在mx:Binding源表達,並且在這種情況下是必需的。請參閱Adobe的data binding examples

text屬性期待一個String被分配給它,所以你要在你的綁定投:

<mx:Binding source="{String(myObj.prop)}" destination="combobox.text" /> 

我的初始誤導答案的歉意,希望這是在正確的軌道上。

+0

刪除括號後仍然收到相同的錯誤。 – 2010-01-04 19:02:55

+0

知道'myObj.prop'的定義會很有幫助。 – 2010-01-04 19:12:29

+0

完美。反向綁定也適用,使用parseInt。 – 2010-01-04 20:16:07