我在tilelist中使用Checkbox作为ItemRenderer。我尝试通过xml设置复选框选中的值。我完美地理解了这些价值观..但checkbox无法绑定值(无法接受)。它自动为所有复选框设置为true。这是我的xml
<PmhTreeAllow>
<PmhTreeAllowname id='1' label ='Allow Text' isField='false'/>
<PmhTreeAllowname id='2' label ='Document Link' isField='false'/>
<PmhTreeAllowname id='3' label ='Test Results Entry'isField='false'/>
<PmhTreeAllowname id='4' label ='Dummy' isField='false'/>
</PmhTreeAllow>我的磁贴列表..
<mx:TileList id="tileList" width="160" height="100%" textAlign="left" horizontalScrollPolicy="off" verticalScrollPolicy="off" dataProvider="modelInstance.optionCollList}" columnCount="1" backgroundAlpha="0" borderStyle="none"itemRenderer="com.Frontend.views.treeStructure.myTileList" useRollOver="false" rowHeight="28" itemClick="tileItemClick(event)" columnWidth="150" selectedIndex="0" x="10" y="0">
复选框ItemRenderer..
<?xml version="1.0" encoding="utf-8"?>
<mx:CheckBox xmlns:mx="http://www.adobe.com/2006/mxml" label="{data.@label}" selected="data.@isField}"/>提前感谢阿肖克
发布于 2010-06-11 14:29:09
http://www.switchonthecode.com/tutorials/flex-using-item-renderers
这会对你有帮助。
发布于 2010-06-11 20:07:53
出于性能原因,在itemRenderer中使用绑定被认为是一种不好的做法。相反,监听FlexEvent.DATA_CHANGE并手动修改您的值。我打赌这样做会解决你的问题。
尝试这样的itemRenderer:
<mx:CheckBox xmlns:mx="http://www.adobe.com/2006/mxml" label="{data.@label}" selected="data.@isField}" dataChange="onDataChange()">
<mx:Script><[[
public function onDataChange():void{
var dataAsXML = data as XML;
this.selected = data.@isField
this.label = data.@label
]]></mx:Script>
</mx:CheckBox>我对XML没有做太多的工作,但我怀疑XML属性不会绑定,因为XML不像ActionScript对象,因此"propertyChanged“绑定事件在XML对象上的存在方式与在AS3对象上的不同。
https://stackoverflow.com/questions/3020517
复制相似问题