我有一个对象的ArrayCollection。 我将此数组作为数据提供者传递给horizontallist,我正在使用自定义itemRenderer。
执行应用程序时,horizontallist正在显示
[object CustomClass][object CustomClass][object CustomClass][object CustomClass]
我已尝试在itemrenderer中转换每个对象,如下所示:
<mx:Label text="{(data as CustomClass).label1}"/>
但它不起作用......
感谢您提供的任何帮助。 的问候,
BS_C3
编辑 - 2010年3月9日
我们再去找一些代码=)
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Component id="Item">
<mx:VBox width="180">
<mx:HBox width="100%">
<mx:Spacer width="100%"/>
<mx:Button label="x"/>
</mx:HBox>
<mx:Image id="thumbnail"/>
<mx:Label width="100%" horizontalCenter="0" text="Collection"/>
<mx:HBox width="100%">
<mx:Label width="100" text="GIA"/>
<mx:Label text="{data.charg_st}"/>
</mx:HBox>
<mx:HBox width="100%">
<mx:Label width="100" text="Finger Size"/>
<mx:Label text="xxxxxx"/>
</mx:HBox>
<mx:HBox width="100%">
<mx:Label width="100" text="Carat"/>
<mx:Label text="{data.carats}"/>
</mx:HBox>
<mx:HBox width="100%">
<mx:Label width="100" text="Color"/>
<mx:Label text="{data.color}"/>
</mx:HBox>
<mx:HBox width="100%">
<mx:Label width="100" text="Clarity"/>
<mx:Label text="{data.clarity}"/>
</mx:HBox>
<mx:HBox width="100%">
<mx:Label width="100" text="Shop"/>
<mx:Label text="{data.lgort_fp}"/>
</mx:HBox>
<mx:HBox width="100%">
<mx:Label width="100" text="Resizing"/>
<mx:Label text="{data.resizing}"/>
</mx:HBox>
<mx:HBox width="100%">
<mx:Label width="100" text="Price Excl. VAT"/>
<mx:Label text="{data.net_price_fp}"/>
</mx:HBox>
</mx:VBox>
</mx:Component>
<mx:HorizontalList
dataProvider="{GlobalData.instance.tray}"
columnCount="4"
rowCount="1"
horizontalScrollPolicy="off"
itemRenderer="{Item}"
/>
</mx:Canvas>
仅供参考,horizonalList数据提供者是对象的ArrayCollection。
现在,horizontallist正在显示空项......具有正确的宽度...... arraycollection不为空(我在项目的click事件上使用了一个警报,我确实检索了预期的数据)。
希望这有助于&gt; _&lt;
此致 BS_C3
答案 0 :(得分:0)
你试过吗
<mx:Label text="{data.label1}"/>
? (label1
是您对象的属性)
答案 1 :(得分:0)
使用列表中的labelField
字段,请参阅here
<mx:List dataProvider="{myDataProvider}" labelField="label1"/>
答案 2 :(得分:0)
尝试将自定义类声明为组件中的某个变量。声明类的实例后,Flex可能会更成功地识别类的属性。
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
private var myClass:CustomClass;
]]>
</mx:Script>
<mx:Component id="Item">
<mx:VBox width="180">
...
thelost他的代码也是正确的。你应该可以使用
<mx:Label text="{data.label1}"/>
访问itemRenderer
中的课程属性。
修改:我确定您已完成此操作,但请仔细检查您是否已将dataProvider
中的HorizontalList
设置为[Bindable]
CustomClass
声明{{1}} }}
答案 3 :(得分:0)
我设法解决了我的问题。
当我删除itemrenderer的vbox的width属性时,所有数据都出现在horizontalList中。 为什么?我不知道为什么,但似乎是将数据定位在horizontallist的可见范围内(huh ??)。
事情是现在一切正常。对于最终的代码,你有:
HorizontalList将:
<mx:HorizontalList id="hlist"
dataProvider="{TrayData.instance.itemsCollection}"
columnCount="{TrayData.instance.hlistColumns}"
rowCount="1"
itemRenderer="components.TrayItem"
horizontalScrollPolicy="off"
horizontalCenter="0" verticalCenter="0"
borderStyle="none"
horizontalScrollPosition="{TrayData.instance.hsPosition}"
/>
的ItemRenderer:
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" >
<mx:HBox width="100%">
<mx:Spacer width="100%"/>
<mx:Button label="x"/>
</mx:HBox>
<mx:HBox width="100%">
<mx:Spacer width="15%"/>
<mx:VBox width="70%">
<mx:Image id="thumbnail" horizontalAlign="center"/>
<mx:Label width="100%" textAlign="center" text="Collection"/>
<mx:HBox width="100%">
<mx:VBox id="labelBox" width="100">
<mx:Label width="100" text="GIA"/>
<mx:Label width="100" text="Finger Size"/>
<mx:Label width="100" text="Carat"/>
<mx:Label width="100" text="Color"/>
<mx:Label width="100" text="Clarity"/>
<mx:Label width="100" text="Shop"/>
<mx:Label width="100" text="Resizing"/>
<mx:Label width="100" text="Price"/>
</mx:VBox>
<mx:VBox id="dataBox" width="100%" horizontalAlign="left">
<mx:Label text="{data.resizingCode + ' ' + data.charg_st}"/>
<mx:Label text="{data.fingerSize}"/>
<mx:Label text="{((new Number(data.carats))/100).toString()}"/>
<mx:Label text="{data.color}"/>
<mx:Label text="{data.clarity}"/>
<mx:Label text="{data.lgort_fp}"/>
<mx:Label text="{data.net_price_fp}"/>
</mx:VBox>
</mx:HBox>
<mx:Button label="Order" enabled="{data.product_type == 'C'}" width="50%"/>
</mx:VBox>
<mx:Spacer width="15%"/>
</mx:HBox>
</mx:VBox>
此致 BS_C3