Делать select all на flex немного сложнее, но я расскажу вам, как мы это сделали, и это прекрасно работает.
Мы создали производный элемент управления List с именем «ExList», у которого есть свойство «selectAllCB», которое мы привязываем к существующему флажку, который будет работать для выбора всей логики. Обратите внимание, что когда мы устанавливаем свойство selectAllCB, мы создаем ExList для прослушивания событий флажка.
Когда флажок установлен, мы вручную устанавливаем массив selectedItems на массив dataProvider, и все элементы выбираются.
Игра с itemRenderer работает неправильно, потому что, когда вы программируете свой список снова и снова каждый раз, когда вам приходится писать так много кода.
I am attaching some sample code here below..
public class ExList extends List
{
public function ExTileList()
{
super();
this.allowMultipleSelection = true;
}
private var _selectAllCB:CheckBox = null;
[Bindable]
public function get selectAllCB():CheckBox
{
return _selectAllCB;
}
public function set selectAllCB(v:CheckBox):void
{
if(v==null)
return;
_selectAllCB = v;
v.addEventListener(ListEvent.ITEM_CLICK, handleAllChange,false, 0 , true);
v.addEventListener("change", handleAllChange,false, 0 , true);
}
private function handleAllChange(e:Event):void
{
if(_selectAllCB.selected)
{
this.selectedItems = this.dataProvider.toArray();
}
else
{
this.selectedItems = new Array();
}
}
}
И вы можете использовать его как ...
<CheckBox id="sAll"/>
<ExList selectAllCB="{sAll}"/>
// Please note its in curly braces