Я работаю над существующим проектом во Flex, и меня на один день пытались выяснить, как данные попадают из одного списка в другой.Я думаю, что я понял это, но я надеюсь, что есть некоторые гуру Flex, которые могли бы пролить свет на происходящее.
Я объясню ситуацию:
Тамэто источник данных, назовем его ds, он загружает ArrayCollection (ac) в класс модели (m).Тогда у класса представления (v) есть два ListCollectionViews l1 и l2.И l1, и l2 имеют функции фильтра, поэтому половина данных отфильтровывается из l1, а другая половина - из l2.
Теперь все это имеет смысл, но если я добавлю данные в l1 или l2, они автоматически добавятся в m.ac.Как это происходит?Мое лучшее предположение состоит в том, что базовая структура данных всех трех списков одинакова.Но так как я так долго застрял в этом, я хотел бы знать, что происходит.Google не сильно помог в этом.
[Подробнее] По запросу я добавлю еще несколько деталей.Извините, я не могу скопировать и вставить то, над чем работаю.
внутри модели:
[Bindable] public var ac:ArrayCollection = null;
внутри источника данных:
private function resultHandlerac (event:ResultEvent) : void {
var ac:ArrayCollection = helperClass.arrayFromResultEvent (event);
m.ac = ac;
}
вид изнутри:
[Bindable] public var l1:ListCollectionView;
[Bindable] public var l2:ListCollectionView;
private function resultHandlerac (ac:ArrayCollection) : void {
week1Hours = new ListCollectionView(ac);
week1Hours.filterFunction = function(i:Object) : Boolean { return i.WeekID
== 1 && !i.Removed; };
week2Hours = new ListCollectionView(hoursData);
week2Hours.filterFunction = function(i:Object) : Boolean { return i.WeekID
== 2 && !i.Removed; };
l1.refresh();
l2.refresh();
}
И есть сетка данных, которая отображает l1 и l2, каждый раз, когда редактируется поле, внутри сетки данных обновляются три списка.Если требуется дополнительная информация, пожалуйста, дайте мне знать.Я не могу выложить настоящий код здесь, поскольку это не проект с открытым исходным кодом, над которым я работаю.