Flex 3 Использование коллекции ArrayCollection для заполнения сетки данных и поля со списком - PullRequest
0 голосов
/ 11 августа 2010

Я использую эту коллекцию array для заполнения сетки данных Flex 3.Я также хотел бы использовать этот массив arrayCollection для заполнения comboBox узлом Name.

В arrayCollection у меня есть Имя, указанное дважды.У меня есть две строки в Datagrid.

Если я установлю для поля метки ComboBox значение Name, тогда имя будет дважды указано в меню ComboBox.Есть ли способ использовать это arrayCollection, и каждое имя должно быть указано в comboBox только один раз?

Я всегда могу сделать еще один цикл и коллекцию массивов для имени, но мне было интересно, есть ли лучший способ.

    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);

Спасибо.

-Laxmidi

1 Ответ

1 голос
/ 11 августа 2010

Я немного растерялся. Исходя из вашего примера кода, имя будет указано в ComboBox дважды, потому что одно и то же имя используется дважды в вашем dataProvider.

Вы можете захотеть о преобразовании вашего dataProvider в два отдельных объекта ListCollectionView, обеспечить различную фильтрацию для каждого объекта и использовать каждый из них как отдельный [dataProviders.

В коде psuedo я бы так и сделал:

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

Применить фильтрацию к comboBoxCollection, чтобы отфильтровать записи с повторяющимися именами. Подробнее о фильтрации коллекций в документации .

...