| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 | using System;using System.Globalization;using Syncfusion.SfDataGrid.XForms;using Xamarin.Forms;namespace InABox.Mobile{        internal class MobileGridTimeConverter : IValueConverter    {        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)        {            if (value is TimeSpan time)                return time.Equals(TimeSpan.Zero)                     ? ""                     : time.ToString(Format);            return "";        }        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)        {            throw new NotImplementedException();        }                public String Format { get; set; }        public bool BlankIfZero { get; set; }            }        public class MobileGridTimeColumn<TEntity> : MobileGridColumn<TEntity, TimeSpan>    {                public String Format { get; set; }                public bool BlankIfZero { get; set; }                public MobileGridTimeColumn() : base()        {            Width = GridLength.Auto;            Format = @"h\:mm";            Alignment = TextAlignment.Center;            BlankIfZero = true;        }                public override GridColumn CreateColumn()        {            var result = CreateColumn<GridTextColumn>();            result.Format = Format;            result.DisplayBinding = new Binding(                this.ColumnName,                 BindingMode.Default,                 new MobileGridTimeConverter()                {                    Format = this.Format,                     BlankIfZero =  this.BlankIfZero                });            return result;        }    }}
 |