using System; using System.Collections.Generic; using System.Drawing; using System.Text.Json.Serialization; namespace WalkingTec.Mvvm.Core { /// /// Grid Column Content Fixed Enum /// [JsonConverter(typeof(JsonStringEnumConverter))] public enum GridColumnFixedEnum { /// /// 规定在左侧 /// Left = 0, /// /// 规定在右侧 /// Right } /// /// Grid Column Edit Type Enum /// [JsonConverter(typeof(JsonStringEnumConverter))] public enum EditTypeEnum { Text, TextBox, ComboBox, Datetime, CheckBox } /// /// Grid Column Content Align Enum /// [JsonConverter(typeof(JsonStringEnumConverter))] public enum GridColumnAlignEnum { /// /// Center /// Center = 0, /// /// Left /// Left, /// /// Right /// Right } /// /// Grid Column Type Enum /// [JsonConverter(typeof(JsonStringEnumConverter))] public enum GridColumnTypeEnum { /// /// 正常列 /// Normal = 0, /// /// 空列 /// Space, /// /// 操作列 /// Action } /// /// IGridColumn /// /// public interface IGridColumn { /// /// 表头类型 /// GridColumnTypeEnum ColumnType { get; set; } /// /// 设定字段名 /// string Field { get; set; } /// /// 标题名称 /// string Title { get; set; } /// /// 列宽 /// int? Width { get; set; } /// /// //监听单元格事件 /// string Event { get; set; } /// /// 是否允许排序 /// bool? Sort { get; set; } /// /// 是否固定列 /// GridColumnFixedEnum? Fixed { get; set; } /// /// 对齐方式 /// GridColumnAlignEnum Align { get; set; } /// /// 是否可改变列宽 /// bool? UnResize { get; set; } /// /// 隐藏列 /// bool? Hide { get; set; } /// /// 是否显示汇总 /// bool? ShowTotal { get; set; } /// /// 子列 /// IEnumerable> Children { get; } /// /// 底层子列数量 /// int ChildrenLength { get; } EditTypeEnum? EditType { get; set; } List ListItems { get; set; } #region 只读属性 生成 Excel 及其 表头用 /// /// 最大子列数量 /// int MaxChildrenCount { get; } /// /// 多表头的最大层数 /// int MaxLevel { get; } /// /// 最下层列 /// IEnumerable> BottomChildren { get; } /// /// 最大深度 /// int MaxDepth { get; } #endregion #region 暂时没有用 string Id { get; set; } /// /// 是否需要分组 /// bool NeedGroup { get; set; } bool IsLocked { get; set; } bool Sortable { get; set; } /// /// 是否允许多行 /// bool AllowMultiLine { get; set; } /// /// 是否填充 /// int? Flex { get; set; } Type FieldType { get; } string FieldName { get; } /// /// 获取内容 /// /// 源数据 /// 是否适用format /// 内容 object GetText(object source, bool needFormat = true); object GetObject(object source); /// /// 获取前景色 /// /// 源数据 /// 前景色 string GetForeGroundColor(object source); /// /// 获取背景色 /// /// 源数据 /// 背景色 string GetBackGroundColor(object source); bool HasFormat(); #endregion } }