using System; using System.Linq.Expressions; namespace zero.Core.Utils { public class TableColumn { public string Name { get; set; } public bool IsSeparator { get; set; } public Func FieldSelector { get; set; } public Func CanRender { get; set; } = x => true; public double Width { get; set; } public TableColumnType ColumnType { get; set; } public TableColumn Type(TableColumnType type) { ColumnType = type; return this; } public TableColumn Size(double width) { Width = width; return this; } public TableColumn For(Expression> fieldSelector, Expression> canRender = null) { FieldSelector = fieldSelector.Compile(); CanRender = canRender != null ? canRender.Compile() : CanRender; return this; } public TableColumn Currency() { ColumnType = TableColumnType.Currency; return this; } public TableColumn Link() { ColumnType = TableColumnType.Link; return this; } } public enum TableColumnType { Default, Currency, Link } }