using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UIElements;
namespace MuHua {
///
/// UI项容器
///
public class ModuleUIItems : ModuleUIPanel where T : ModuleUIItem {
public readonly VisualTreeAsset templateAsset;
public readonly Func generate;
public List uiItems = new List();
/// 数据操作 uiItems[index];
/// UI容器
public ModuleUIItems(VisualElement element, VisualTreeAsset templateAsset, Func generate) : base(element) {
this.templateAsset = templateAsset;
this.generate = generate;
}
/// 释放资源
public void Release() {
element.Clear();
uiItems.ForEach(obj => obj.Release());
uiItems = new List();
}
/// 创建UI项
public void Create(List datas) {
Release();
datas.ForEach(Create);
}
/// 创建UI项
public void Create(Data data) {
VisualElement element = templateAsset.Instantiate();
T item = generate(data, element);
this.element.Add(item.element);
uiItems.Add(item);
}
}
}