问题描述
- Flex中dataProvider绑定数组问题
-
Flex中dataProvider绑定数组,但只有在定义并赋值时绑定的数据运行时才显示,写在函数中不显示,以下为代码:<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" creationComplete="init()"> <fx:Declarations> <!-- 将非可视元素(例如服务、值对象)放在此处 --> </fx:Declarations> <fx:Script> <![CDATA[ public var array:Array; public function init():void{ array= ["苹果", "香蕉", "牛奶", "d", "a", "b", "c", "d"]; trace(array); } ]]> </fx:Script> <mx:Canvas x="0" y="0" width="100%" height="100%"> <mx:DataGrid x="0" y="68" width="676" height="383" id="productdata" dataProvider="{array}" fontFamily="Times New Roman" fontSize="14"> <mx:columns> <mx:DataGridColumn headerText="商品名称" dataField="name"/> <!--<mx:DataGridColumn headerText="商品类别" dataField="type"/> <mx:DataGridColumn headerText="商品价格" dataField="price"/> <mx:DataGridColumn headerText="剩余数量" dataField="num"/>--> </mx:columns> </mx:DataGrid> <mx:ApplicationControlBar x="0" y="0" height="70" width="676"> </mx:ApplicationControlBar> </mx:Canvas> </s:Application>
以上为程序的代码,在函数init()中给数组进行了赋值,然后在DataGrid中绑定数组,但是在运行的时候不显示所赋的值,如果在array定义的时候就直接赋值的话,在运行的时候会显示值,为什么啊?小弟初学者,没有金币,望大神能慷慨解答,不胜感激!
解决方案
你需要简单改一下 ,在public var array:Array 上一行添加 [Bindable] 关键字会在改变变量值时,给予通知使用的列表
时间: 2024-11-05 14:49:33