Flex组件 - vbox vs group为什么要编译,其他不编译?

时间:2011-06-03 14:38:30

标签: flex components flash-builder advanceddatagrid

试图理解为什么在flex(flash builder 4)中创建组件时,我无法从file->新组件和引用“data”创建组件,但稍有不同的示例有效。该组件将用作高级数据网格渲染器。

这个编译很好:

<mx:VBox xmlns:fx="http://ns.adobe.com/mxml/2009" 
     xmlns:s="library://ns.adobe.com/flex/spark" 
     xmlns:mx="library://ns.adobe.com/flex/mx" height="100%" width="100%" >
    <s:RichText text="{data.presentingProblemNotes}"/>
</mx:VBox>

这个不编译,不喜欢data.presentingProblemNotes

<?xml version="1.0" encoding="utf-8"?>
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" 
         xmlns:s="library://ns.adobe.com/flex/spark" 
         xmlns:mx="library://ns.adobe.com/flex/mx" width="100%" height="100%">
    <s:RichText text="{data.presentingProblemNotes}"/>
</s:Group>

错误发生在“数据”变量上 - 它不存在。

1 个答案:

答案 0 :(得分:3)

在mx组件中,所有UIComponent都有一个'data'属性,该属性用于项目渲染器,但已在Spark组件中删除,因为并非所有UIComponent都需要它。他们现在需要扩展DataRenderer才能发挥作用。在您的特定情况下,您可以这样做:

<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
         xmlns:s="library://ns.adobe.com/flex/spark" 
         xmlns:mx="library://ns.adobe.com/flex/mx" width="100%" height="100%">
    <s:RichText text="{data.presentingProblemNotes}"/>
</s:ItemRenderer>