Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex FLEX:Datagrid,如何在给定“我的数据”属性值的情况下选择项目_Apache Flex - Fatal编程技术网

Apache flex FLEX:Datagrid,如何在给定“我的数据”属性值的情况下选择项目

Apache flex FLEX:Datagrid,如何在给定“我的数据”属性值的情况下选择项目,apache-flex,Apache Flex,我使用的是自定义组件CheckBoxList DataGrid(),作为数据提供者,我有一个ArrayCollection,其中包含以下项: name="item name" selected="true" 我希望在数据模型中将所选属性设置为false或true时更新复选框列表 谢谢到目前为止,最简单的方法是在更新了阵列集合中的一些对象之后,刷新阵列集合。最后有一个这样做的例子 我认为您无法绑定到ArrayCollection中的数据。我认为您需要做的是扩展Object(或者可能是FlashP

我使用的是自定义组件CheckBoxList DataGrid(),作为数据提供者,我有一个ArrayCollection,其中包含以下项:

name="item name" selected="true"
我希望在数据模型中将所选属性设置为false或true时更新复选框列表


谢谢

到目前为止,最简单的方法是在更新了
阵列集合中的一些对象之后,刷新
阵列集合。最后有一个这样做的例子

我认为您无法绑定到ArrayCollection中的数据。我认为您需要做的是扩展
Object
(或者可能是
FlashProxy
)来创建一个自定义类,当它的某些属性发生更改时,它会告诉应用程序以与我们在示例中手动执行的相同方式更新给定的数据列表

<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
                       xmlns:s="library://ns.adobe.com/flex/spark" 
                       xmlns:mx="library://ns.adobe.com/flex/mx"
                       width="426" height="243"
                       showStatusBar="false">

    <fx:Script>
        <![CDATA[
            import mx.collections.ICollectionView;
            import mx.controls.Alert;
            import mx.events.CollectionEvent;
            import mx.events.FlexEvent;

            protected function randomizeData_click(event:MouseEvent):void
            {
                for each (var o:Object in data)
                {
                    o.name = Math.round(Math.random() * 100);
                    o.selected = Math.random() < 0.5;
                }

                data.refresh();
            }

        ]]>
    </fx:Script>

    <fx:Declarations>
        <s:ArrayCollection id="data">
            <fx:Object name="1" selected="false" />
            <fx:Object name="2" selected="false" />
            <fx:Object name="3" selected="true" />
            <fx:Object name="4" selected="false" />
        </s:ArrayCollection>
    </fx:Declarations>

    <mx:DataGrid id="dataGrid" dataProvider="{data}" top="10" left="10" bottom="39" right="10">
        <mx:columns>
            <mx:DataGridColumn headerText="Item" dataField="name"/>
            <mx:DataGridColumn headerText="Selected" dataField="selected" itemRenderer="mx.controls.CheckBox" />
        </mx:columns>
    </mx:DataGrid>

    <s:Button label="Randomize Data" right="10" bottom="10" click="randomizeData_click(event)"/>
</s:WindowedApplication>


复选框列表是什么,它与数据网格的关系在哪里?很抱歉,我已更新了我的问题。因此,如果我更改属性“selected”,然后调用data.refresh(),我将更新数据网格中的复选框?是的,正如我在示例中所示。调用
refresh
将使
DataGrid
看起来像是新的,适当地设置每个
itemrender
的值,其中一个将是您的复选框。