我正在尝试为我的列表创建一个自定义按钮渲染器,它一直在说未识别的属性“数据”。这是我的代码。
渲染器:
<?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"}
]);
我可能做错了什么?
答案 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>