我的项目渲染器未找到属性“数据”。

时间:2011-02-28 16:16:48

标签: flash flex button adobe itemrenderer

我正在尝试为我的列表创建一个自定义按钮渲染器,它一直在说未识别的属性“数据”。这是我的代码。

渲染器:

<?xml version="1.0" encoding="utf-8"?>
<s:Button xmlns:fx="http://ns.adobe.com/mxml/2009" 
          xmlns:s="library://ns.adobe.com/flex/spark" 
          xmlns:mx="library://ns.adobe.com/flex/mx" label="{data.label}">
</s:Button>

调用渲染器的对象:

<s:List x="80" y="88" width="142" height="384" dataProvider="{navigation}" itemRenderer="com.renderers.NavigationRenderer" borderVisible="false"/>

包含列表数据的数组集合:

[Bindable]
private var navigation:ArrayCollection = new ArrayCollection([
    {label:"Home",state:"Home"},{label:"Tools",state:"Tools"}
]);

我可能做错了什么?

3 个答案:

答案 0 :(得分:4)

s:Button是否有一个名为data的属性?

让渲染器扩展ItemRenderer类。 More information here

你的渲染器应该是这样的:

<?xml version="1.0" encoding="utf-8"?>
<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" >
<s:Button label="{data.label}">
</s:ItemRenderer>

答案 1 :(得分:3)

spark按钮不实现IDataRenderer接口。

您可以轻松地将按钮放在ItemRenderer类中以访问该界面,或者您可以创建一个新的项呈示器类来扩展Button并实现IDataRenderer。

答案 2 :(得分:1)

默认情况下,Spark组件没有 data 属性。要将组件用作inderer,它应该实现IItemRenderer接口,而spark Button不会。{/ p>