1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- using System;
- using System.Linq;
- using Syncfusion.SfDataGrid.XForms;
- using Xamarin.Forms;
- namespace comal.timesheets
- {
- public abstract class MobileGridNumericColumn<TEntity, TType> : MobileGridColumn<TEntity, TType>
- where TType : struct, IComparable, IComparable<TType>, IConvertible, IEquatable<TType>, IFormattable
- {
- public MobileGridSummaryType Summary { get; set; }
- public MobileGridNumericColumn() : base()
- {
- Width = GridLength.Auto;
- }
- private bool IsIntegral()
- {
- return new Type[]
- {
- typeof(sbyte), typeof(SByte),
- typeof(byte), typeof(Byte),
- typeof(short), typeof(Int16),
- typeof(ushort), typeof(UInt16),
- typeof(int), typeof(Int32),
- typeof(uint), typeof(UInt32),
- typeof(long), typeof(Int64),
- typeof(ulong), typeof(UInt64)
- }
- .Contains(typeof(TType));
- }
-
- public GridSummaryColumn CreateSummaryColumn()
- {
- if (Summary == MobileGridSummaryType.None)
- return null;
- var result = new GridSummaryColumn();
- result.SummaryType = IsIntegral()
- ? Syncfusion.Data.SummaryType.Int32Aggregate
- : Syncfusion.Data.SummaryType.DoubleAggregate;
- result.Format = Summary == MobileGridSummaryType.Count
- ? "{}{Count}"
- : "{}{Sum}";
- result.MappingName = ColumnName;
- return result;
- }
- }
- }
|