| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 | using System;using System.Globalization;using InABox.Core;using Syncfusion.SfDataGrid.XForms;using Xamarin.Forms;namespace InABox.Mobile{    internal class MobileGridDateConverter : IValueConverter    {        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)        {            if (value is DateTime date)                return date.IsEmpty() && BlankIfZero                    ?  ""                     : date.ToString(Format);            return "";        }        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)        {            return value;        }                public String Format { get; set; }        public bool BlankIfZero { get; set; }            }    public class MobileGridDateColumn<TEntity> : MobileGridColumn<TEntity, DateTime>    {        public String Format { get; set; }        public bool BlankIfZero { get; set; }        public MobileGridDateColumn() : base()        {            Width = GridLength.Auto;            Format = @"dd MMM yy";            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 MobileGridDateConverter()                {                    Format = this.Format,                    BlankIfZero = this.BlankIfZero                });            return result;        }    }}
 |