1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- using Syncfusion.SfDataGrid.XForms;
- using Xamarin.Forms;
- namespace InABox.Mobile
- {
-
- public enum MobileGridImageAspect
- {
- Fill,
- Fit
- }
-
- public class MobileGridImageColumn<TEntity> : MobileGridColumn<TEntity, ImageSource>
- {
- public MobileGridImageAspect Aspect { get; set; } = MobileGridImageAspect.Fit;
-
- public double Margin { get; set; }
-
- public ImageSource Header { get; set; }
-
- public MobileGridImageColumn() : base()
- {
- Width = 40;
-
- }
-
- protected override View HeaderContent()
- {
- if (Header != null)
- return new Image()
- {
- Source = Header,
- Margin = Margin
- };
- return base.HeaderContent();
- }
-
- public override GridColumn CreateColumn()
- {
- var result = CreateColumn<GridTemplateColumn>();
-
- result.CellTemplate = new DataTemplate(() =>
- {
- var image = new Image()
- {
- Aspect = Aspect == MobileGridImageAspect.Fill
- ? Xamarin.Forms.Aspect.AspectFill
- : Xamarin.Forms.Aspect.AspectFit,
- Margin = Margin,
- };
- image.SetBinding(Image.SourceProperty, ColumnName);
- return image;
- });
-
- return result;
- }
- }
- }
|