2011-02-28 26 views
2

我試圖創建一個自定義按鈕渲染我的列表,並口口聲聲說財產來源不明「的數據。」這是我的代碼。我的項目渲染器未找到屬性「數據」。

渲染:

<?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

火花按鈕不會實現IDataRenderer接口。

您可以輕鬆地將按鈕放在ItemRenderer類中以訪問該接口,也可以創建一個新的項目渲染器類來擴展Button並實現IDataRenderer。

4

請問S:按鈕有一個名爲數據的屬性?

讓你的渲染擴展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

Spark組件沒有數據默認屬性。要使用組件作爲inderer它應該實現IItemRenderer接口,火花按鈕不會。