#apache-flex #actionscript
#apache-flex #actionscript
Вопрос:
Как мне создать новую arraycollection, которая может генерировать уникальное имя переменной?
Нравится:
AC nu as in AC1:ArrayCollection
AC nu as in AC2:ArrayCollection
AC nu as in AC3:ArrayCollection
AC nu as in AC4:ArrayCollection
nu ;
Комментарии:
1. Итак, вы хотите, чтобы это было сделано во время выполнения, верно? Возможно, если вы скажете нам, почему вы хотите это сделать, возможно, мы сможем придумать решение 🙂
2. У меня есть несколько datagrid, если я исправлю, datagrid может принимать только AC, поэтому, если я использую один AC, повлияют ли изменения, внесенные в AC, на другие datagrid, использующие тот же AC, я думаю, правильно ли иметь уникальный AC для каждой datagrid?
3. Я не уверен, может ли DataGrid принимать только AC или нет. Я думал, что он также может принимать XML. Если оставить в стороне эту проблему, да, вам понадобится уникальный AC для каждой сетки данных. Вы заполняете сетки во время выполнения в цикле? Или вы вызываете их один за другим?
4. Вызываю их один за другим.
5. Не задавайте технических вопросов типа «как мне сделать x в коде». Вместо этого задайте проблему, с которой вы столкнулись: «Я пытаюсь выполнить X, как мне это сделать?» Я все еще не понимаю, зачем вам нужно более одного ArrayCollection, если вы показываете одни и те же данные в обеих сетках данных.
Ответ №1:
Я думаю, вы хотите:
var ac1:ArrayCollection = new ArrayCollection(sourceArrayCollection.list);
var ac2:ArrayCollection = new ArrayCollection(sourceArrayCollection.list);
Ответ №2:
Не могли бы вы рассмотреть возможность создания super ArrayCollection для хранения всей имеющейся у вас коллекции ArrayCollection. Идеальный вариант — это двумерный массив.
var superDataCollection:ArrayCollection = new ArrayCollection();
var dc:ArrayCollection = new ArrayCollection();
var di:Object = new Object();
di.label1 = "Test";
di.label2 = "Test2";
dc.addItem(di);
superDataCollection.addItem(dc);
myDG.dataProvider = superDataCollection[0];