0

我使用这个 arrayCollection 来填充 Flex 3 Datagrid。我还想使用这个 arrayCollection 来填充带有 Name 节点的组合框。

在arrayCollection 中,我列出了两次名称。我在 Datagrid 中有两行。

如果我将组合框的标签字段设置为名称,则名称将在组合框菜单中列出两次。有没有办法使用这个 arrayCollection 并且每个名称在组合框中只列出一次?

我总是可以为 Name 创建另一个循环和数组集合,但我想知道是否有更好的方法。

    var i:uint; 
    for (i=0; i<myArray.length; i++){
        myDGArray = [
         {Name: myArray[i].Name, Subject: 'Math:', Pass: myArray[i].math_pass, Fail: myArray[i].math_fail},
         {Name: myArray[i].Name, Subject: 'Reading:', Pass: myArray[i].reading_pass, Fail: myArray[i].reading_fail}
                             ]
                }

myAC=new ArrayCollection(myDGArray);

谢谢你。

-拉克西米迪

4

1 回答 1

1

我有点困惑。根据您的代码示例,该名称将在 ComboBox 中列出两次,因为在您的 dataProvider 中使用了两次相同的名称。

您可能需要考虑将您的 dataProvider 转换为两个单独的 ListCollectionView 对象,对每个对象提供不同的过滤,并将它们分别用作单独的 dataProviders。

在伪代码中,我会这样做:

public var comboBoxCollection : ListCollectionView = new ListCollectionView(myAC );
public var dataGridCollection : ListCollectionView = new ListCollectionView(myAC );

对 comboBoxCollection 应用过滤以过滤掉具有重复名称的条目。有关文档中的集合过滤的更多信息

于 2010-08-11T18:35:51.333 回答