2010-12-02 8 views
4

不一致型のプロパティに対して双方向データバインディングを実行する簡単な方法はありませんか?このコード結果をコンパイルしようとする(s:TextInputからtext性)タイプStringの一方(Fooからbar性)タイプNumberの他の不一致型のプロパティのFlex 4双方向データバインディング

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> 

:私はお互いに2つのプロパティをバインドしようとしていた次の例で次のエラーで:

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

エラーが発生した理由を私は理解し、私は間の変換の試みを可能にする何か(のFlex 4メタデータのおそらくいくつかの並べ替え)の単純無知だ場合、私は思っていましたt種類およびWOような変換が失敗した場合、実行時エラーを投げ...

答えて

0

私はデータ型に盲目の私のオブジェクトにdata rendererを使ってしまいました。だから、唯一の解決策はObjectまたは*にアップキャストし、あなたが知っているメソッドを呼び出すことだと思います。これを実行すると、通常はコンパイル時にキャッチされた実行時エラーが発生する可能性がありますが、これ以上の解決策はありません。

0

私が思い付くことができた唯一の事は*Fooで財産barの種類を変更することです(スターはワイルドカードであり、コンパイル時の型チェックを防ぐ)。しかし、私はまだ型を保持する方法があるかどうかを知りたいと思っています。

関連する問題