Existe-t-il vraiment une méthode simple pour effectuer une liaison de données bidirectionnelle sur des propriétés de types non correspondants? Dans l'exemple ci-dessous, je tentais de lier deux propriétés à l'autre: l'un de type String
(text
propriété de s:TextInput
) et l'autre de type Number
(bar
propriété de Foo
)Liaison de données bidirectionnelle Flex 4 sur les propriétés de types non correspondants
package com.example
{
public class Foo
{
[Bindable] public var bar:Number;
}
}
<?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:ex="com.example.*"
>
<fx:Declarations>
<ex:Foo id="foo" />
</fx:Declarations>
<s:TextInput text="@{foo.bar}" /><!-- error at this line -->
</s:Application>
Tentative de compiler ces résultats de code l'erreur suivante:
1067: Implicit coercion of a value of type String to an unrelated type Number.
Je comprends pourquoi l'erreur se produit, mais je me demandais si je suis tout simplement ignorant quelque chose (peut-être une sorte de métadonnées Flex 4) qui permettrait une tentative de conversion entre la t wo types et lancer une erreur d'exécution si une telle conversion échoue ...