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