public static ColumnMappingCollection <T> AutomapForType <T>() { var allProperties = typeof(T).GetProperties(BindingFlags.Instance | BindingFlags.Public); var readableProperties = allProperties.Where(p => p.CanRead && p.GetGetMethod() != null && p.GetGetMethod().IsPublic&& !p.GetIndexParameters().Any()); var map = new ColumnMappingCollection <T>(); foreach (var property in readableProperties) { var local = property; map.Add(new ColumnMapping <T> { Index = map.Count, Name = local.Name, Title = FormatName(local.Name), DataType = local.PropertyType, Populator = o => local.GetValue(o, null) }); } return(map); }
public void Populate <T>(Control grid, ColumnMappingCollection <T> mappings, IEnumerable <T> collection) { Check.Argument(grid, "grid"); Check.Argument(mappings, "mappings"); Check.Argument(collection, "collection"); var populator = _populators.GetOrDefault(grid.GetType()); if (populator == null) { throw new MissingPopulatorException(String.Format("No populator has been registered for {0} grids.", grid.GetType())); } try { populator.BeginEdit(grid); foreach (var current in collection) { var item = current; var row = mappings.ToDictionary(x => x.Index, x => x.GetValueFrom(item)); populator.AddRow(grid, current, row); } } finally { populator.EndEdit(grid); } }
public static ColumnMappingCollection <T> ForType <T>(params Action <FluentColumnMapping <T> >[] columns) { var collection = new ColumnMappingCollection <T>(); foreach (var fluentConfig in columns) { var config = new ColumnMapping <T>(); fluentConfig.Invoke(new FluentColumnMapping <T>(config)); collection.Add(config); } return(collection); }
public void ConfigureColumns <T>(Control grid, ColumnMappingCollection <T> mapping) { Check.Argument(grid, "grid"); Check.Argument(mapping, "mapping"); var populator = _populators.GetOrDefault(grid.GetType()); if (populator == null) { throw new MissingPopulatorException(String.Format("No populator has been registered for {0} grids.", grid.GetType())); } populator.ClearColumns(grid); foreach (var map in mapping) { populator.AddColumn(grid, map); } }
public static void Populate <T>(Control grid, ColumnMappingCollection <T> config, IEnumerable <T> collection) { Handler.Populate(grid, config, collection); }
public static void ConfigureColumns <T>(Control grid, ColumnMappingCollection <T> mapping) { Handler.ConfigureColumns(grid, mapping); }