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
}
}