Flex数据绑定

时间:2010-01-04 18:55:12

标签: flex data-binding flex3

我正在尝试将对象的属性数据绑定到ComboBox的(editable = true)文本属性。此属性的类型为Number。

如果我使用内联语法绑定,它可以工作:

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

如果我使用mx:Binding进行绑定,则会收到错误:

<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 个答案:

答案 0 :(得分:1)

最初我想: mx:Binding源应该是字段名称本身,而不是值。 Flex抱怨是因为myObj.prop取消引用{}因为它需要带字段名称的字符串Number并看到那里的值(<mx:Binding source="myObj.prop" destination="combobox.text" /> )。

mx:Binding

<强>然而

text源表达式中允许花括号内的ActionScript,在这种情况下是必需的。请参阅Adobe的data binding examples

String属性期望为其分配<mx:Binding source="{String(myObj.prop)}" destination="combobox.text" /> ,因此您需要强制转换绑定:

{{1}}

我对最初的误导性答案表示道歉,希望这是正确的道路。