MultiGroup
```javascript
@ccclass
export default class MultiGroup<T extends BaseListItem<DATA>,DATA> extends jbcore.mvc.BaseComponent{
@property({
type : cc.Prefab,
tooltip : "绑定的预制体对象"
})
itemPrefab = null;
@property({
tooltip : "绑定的预制体脚本名称"
})
itemScript = "";
@property({
type : cc.Node,
tooltip : ""
})
content : cc.Node = null;
/**
*条目选中方法
*
* @protected
* @memberof Group
*/
public itemSelectRefreshHandle : ()=>void = null;
/**
*当前选中的列表
*
* @type {Set<T>}
* @memberof MultiGroup
*/
public selectItemSet : Set<T> = new Set();
onDestroy();
/**
* 数据
* @param {*} datas
*/
setData(datas : DATA[]) : void ;
}
```
>i 示例
```javascript
@ccclass
export default class ToggleItem extends BaseListItem<number> {
@property(cc.Label)
label: cc.Label = null;
@property(cc.Node)
sprite: cc.Node = null;
start () {
this.registerTouch(this.node,10);
}
/**
*填充数据
*
* @abstract
* @memberof BaseListItem
*/
renderData(): void {
this.label.string = "" + this.__data__;
}
// update (dt) {}
onselected(): void {
this.sprite.active = true;
}
onunselected(): void {
this.sprite.active = false;
}
}
@ccclass
export default class ToggleGroup extends MultiGroup<ToggleItem,number> {
start():void{
// super.start();
this.setData([1,2,3,4,5,6,7,8]);
this.itemSelectRefreshHandle = () => {
console.log(this.selectItemSet);
};
}
}
```