iotgateway/WalkingTec.Mvvm/WalkingTec.Mvvm.Core/Grid/GridColumnExtension`Old.cs
2021-12-14 14:10:44 +08:00

219 lines
7.5 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
namespace WalkingTec.Mvvm.Core
{
/// <summary>
/// GridColumnExtension
/// </summary>
public static class GridColumnExtension
{
/// <summary>
/// GetAllBottomColumns
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="self"></param>
/// <returns></returns>
public static IEnumerable<IGridColumn<T>> GetAllBottomColumns<T>(this IEnumerable<IGridColumn<T>> self)
{
List<IGridColumn<T>> rv = new List<IGridColumn<T>>();
foreach (var item in self)
{
rv.AddRange(item.BottomChildren);
}
return rv;
}
/// <summary>
/// Id
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="self"></param>
/// <param name="id"></param>
/// <returns></returns>
public static GridColumn<T> SetId<T>(this GridColumn<T> self, string id) where T : TopBasePoco
{
self.Id = id;
return self;
}
/// <summary>
/// 列头
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="self"></param>
/// <param name="header"></param>
/// <returns></returns>
public static GridColumn<T> SetHeader<T>(this GridColumn<T> self, string header) where T : TopBasePoco
{
self.Title = header;
return self;
}
/// <summary>
/// 本列是否需要分组
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="self"></param>
/// <param name="needGroup"></param>
/// <returns></returns>
public static GridColumn<T> SetNeedGroup<T>(this GridColumn<T> self, bool needGroup) where T : TopBasePoco
{
self.NeedGroup = needGroup;
return self;
}
public static GridColumn<T> SetLocked<T>(this GridColumn<T> self, bool locked) where T : TopBasePoco
{
self.IsLocked = locked;
return self;
}
public static GridColumn<T> SetSortable<T>(this GridColumn<T> self, bool sortable = false) where T : TopBasePoco
{
self.Sortable = sortable;
return self;
}
/// <summary>
/// 列宽
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="self"></param>
/// <param name="width"></param>
/// <returns></returns>
public static GridColumn<T> SetWidth<T>(this GridColumn<T> self, int? width) where T : TopBasePoco
{
self.Width = width;
return self;
}
/// <summary>
/// 是否允许换行
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="self"></param>
/// <param name="allowMultiLine"></param>
/// <returns></returns>
public static GridColumn<T> SetAllowMultiLine<T>(this GridColumn<T> self, bool allowMultiLine) where T : TopBasePoco
{
self.AllowMultiLine = allowMultiLine;
return self;
}
/// <summary>
/// 设置某列是否应该尽量充满
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="self"></param>
/// <param name="flex"></param>
/// <returns></returns>
public static GridColumn<T> SetFlex<T>(this GridColumn<T> self, int? flex) where T : TopBasePoco
{
self.Flex = flex;
return self;
}
///// <summary>
///// 时间与数字类型Format
///// </summary>
///// <typeparam name="T"></typeparam>
///// <param name="self"></param>
///// <param name="format"></param>
///// <returns></returns>
//public static GridColumn<T> SetFormat<T>(this GridColumn<T> self, string format) where T : TopBasePoco
//{
// self.StringFormat = format;
// return self;
//}
/// <summary>
/// 列内容的格式化函数
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="self"></param>
/// <param name="format"></param>
/// <returns></returns>
public static GridColumn<T> SetFormat<T>(this GridColumn<T> self, ColumnFormatCallBack<T> format) where T : TopBasePoco
{
self.Format = format;
return self;
}
/// <summary>
/// 计算列值的表达式
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="self"></param>
/// <param name="columnExp"></param>
/// <returns></returns>
public static GridColumn<T> SetColumnExp<T>(this GridColumn<T> self, Expression<Func<T, object>> columnExp) where T : TopBasePoco
{
self.ColumnExp = columnExp;
return self;
}
/// <summary>
/// 子列
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="self"></param>
/// <param name="childrens"></param>
/// <returns></returns>
public static GridColumn<T> SetChildren<T>(this GridColumn<T> self, params GridColumn<T>[] childrens) where T : TopBasePoco
{
List<GridColumn<T>> temp = new List<GridColumn<T>>();
if (self.Children == null)
{
temp = new List<GridColumn<T>>();
}
else
{
temp = self.Children.Cast<GridColumn<T>>().ToList();
}
temp.AddRange(childrens);
self.Children = temp;
return self;
}
/// <summary>
/// 本列前景色函数
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="self"></param>
/// <param name="foreGroundFunc"></param>
/// <returns></returns>
public static GridColumn<T> SetForeGroundFunc<T>(this GridColumn<T> self, Func<T, string> foreGroundFunc) where T : TopBasePoco
{
self.ForeGroundFunc = foreGroundFunc;
return self;
}
/// <summary>
/// 本列背景色函数
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="self"></param>
/// <param name="backGroundFunc"></param>
/// <returns></returns>
public static GridColumn<T> SetBackGroundFunc<T>(this GridColumn<T> self, Func<T, string> backGroundFunc) where T : TopBasePoco
{
self.BackGroundFunc = backGroundFunc;
return self;
}
/// <summary>
/// 设置本列是否显示汇总
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="self"></param>
/// <param name="show">是否显示</param>
/// <returns></returns>
public static GridColumn<T> SetShowTotal<T>(this GridColumn<T> self, bool show = true) where T : TopBasePoco
{
self.ShowTotal = show;
return self;
}
/// <summary>
/// 设置禁止导出此列数据
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="self"></param>
/// <returns></returns>
public static GridColumn<T> SetDisableExport<T>(this GridColumn<T> self) where T : TopBasePoco
{
self.DisableExport = true;
return self;
}
}
}