using System;
namespace XericUI.ReflectionUIGenerator
{
///
/// 字段编组特性
/// 将多个字段标记为属于同一个编组路径,共享一个 UI 组件实例
///
/// 编组不携带 Tag,Tag 由 [XuiavrgFieldTag] 单独标记。
/// 使用示例:
/// [XuiavrgFieldEntryGroup("field1")]
/// [XuiavrgFieldTag(XuiavrgFieldTag.Label)]
/// public string fieldLabel = "速度";
///
/// [XuiavrgFieldEntryGroup("field1")]
/// [XuiavrgFieldTag(XuiavrgFieldTag.Context)]
/// public float fieldValue = 0.1f;
///
/// [XuiavrgFieldEntryGroup("field1")]
/// [XuiavrgFieldTag(XuiavrgFieldTag.Unit)]
/// public string fieldUnit = "m/s";
///
/// 上述三个字段将合并为一个 Entry,分别绑定到 UI 组件上 Label、Context、Unit 三个子元素
///
[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, AllowMultiple = false)]
public class XuiavrgFieldEntryGroupAttribute : Attribute, IXuiavrgAttribute
{
/// 编组路径,以 "/" 分割层级。同一 groupPath 的字段合并到一个 Entry
public readonly string GroupPath;
///
/// 创建字段编组标记
///
/// 编组路径 (如 "field1" 或 "Stats/Speed")
public XuiavrgFieldEntryGroupAttribute(string groupPath)
{
GroupPath = groupPath;
}
public void BindMetaData(AvrgMemberMetaData metaData)
{
metaData.GroupPath = GroupPath;
// 不设置 Tag/TagIndex,留给 [XuiavrgFieldTag] 单独处理
}
}
}