Связывание данных Flex - PullRequest
       22

Связывание данных Flex

0 голосов
/ 04 января 2010

Я пытаюсь привязать свойство объекта к текстовому свойству 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 Ответ

1 голос
/ 04 января 2010

Изначально я думал: Источником mx:Binding должно быть само имя поля, а не значение. Flex жалуется, потому что разыменовывает myObj.prop из-за {} и видит там значение (a Number), когда хочет получить строку с именем поля.

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

Тем не менее:

ActionScript внутри фигурных скобок разрешен в исходном выражении mx:Binding и требуется в этом случае. См. примеры привязки данных Adobe .

Свойство text ожидает присвоения ему String, поэтому вы захотите привести в привязку:

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

Приношу свои извинения за первоначальный вводящий в заблуждение ответ, надеюсь, это на правильном пути.

...