我有一个PresentationModel
AS类,它包含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>
答案 0 :(得分:1)
您可以安全地忽略该信息消息。
当您拥有带源和源键的PropetyInjector时,通常会显示该消息,其中“sourceKey”定义的属性不可绑定,因此我们要确保您知道该属性的当前值将是唯一的目标将获得一个(当属性不可绑定时,复制值并且不建立绑定)。这可能是也可能不是你想要的。
在这种情况下,没有sourceKey,因为您不希望绑定到源的任何特定属性。相反,您希望将整个PM传递给视图。因此,您不希望建立绑定,只需将值发送到视图一次。
在没有sourceKey或只是发送一次性值的情况下(即:发送常量时),可以忽略该消息。
答案 1 :(得分:0)
您无法绑定到类。使类可绑定意味着该类的所有成员都是可绑定的,但不是定义本身。
您应该为演示模型创建一个成员函数(getter / setter),它返回您要用作源的数据。然后,您还需要创建可用于绑定的PresentationModel实例。因此,不是绑定到PresentationModel.data,而是绑定到myPM.data。