0

で使用されるすべての値を保持するPresentationModelASクラスがありますSomeView.mxml。モデルのクラス全体がバインド可能であり、ビューのモデルプロパティもバインド可能です。ただし、PropertyInjectorタグを使用してモデルをビューに挿入できません。

- INFO: Data binding will not be able to detect assignments to model

FlexデータバインディングとMateに精通している人が私に手を貸してくれませんか?どうもありがとう!

MainEventMap.mxml

<EventHandlers type="{FlexEvent.INITIALIZE}">
    <ObjectBuilder generator="{PresentationModel}" registerTarget="true">
        <Properties dispatcher="{scope.dispatcher}"/>
    </ObjectBuilder>
</EventHandlers>


<Injectors target="{SomeView}" debug="true">
    <PropertyInjector targetKey="model" source="{PresentationModel}" />
</Injectors> 

からのスニペットPresentationModel.as

[Bindable]
public class PresentationModel extends EventDispatcher
{
    public var dispatcher:IEventDispatcher;

    //.....other variables and functions
}

からのスニペットSomeView.mxml

<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="518" height="562" >
<mx:Script>
    <![CDATA[

         //...... all the imports

        [Bindable]
        public var model:OSGiBrokerConsoleModel;

        // ......other variables and functions
    ]]>
</mx:Script>

    // ..... actual view components

</mx:Canvas>
4

2 に答える 2

1

その情報メッセージは無視しても問題ありません。

このメッセージは通常、ソースとソース キーを持つ PropetyInjector があり、"sourceKey" で定義されたプロパティがバインド可能でない場合に表示されるため、そのプロパティの現在の値が唯一のターゲットになることを確認したいと考えています。取得されます (プロパティがバインド可能でない場合、値はコピーされ、バインドは確立されません)。それはあなたが望むものかもしれませんし、そうでないかもしれません。

この場合、ソースの特定のプロパティにバインドしたくないため、sourceKey はありません。代わりに、PM 全体をビューに渡します。そのため、バインディングを確立する必要はありません。値を一度ビューに送信するだけです。

sourceKey がない場合、または単に 1 回限りの値を送信している場合 (つまり、定数を送信している場合)、メッセージは無視できます。

于 2009-12-23T04:29:28.623 に答える
0

クラスにバインドすることはできません。クラスをバインド可能にするということは、そのクラスのすべてのメンバーがバインド可能になることを意味しますが、定義自体はバインド可能ではありません。

ソースとして使用するデータを返すプレゼンテーションモデルのメンバー関数(getter / setter)を作成する必要があります。次に、バインディングに使用できるPresentationModelのインスタンスも作成する必要があります。したがって、PresentationModel.dataにバインドするのではなく、myPM.dataにバインドします。

于 2009-11-03T11:02:40.077 に答える