protected virtual void UpdateColumns() { var bindingListSource = DataSource as BindingListSource; if (DesignMode) { return; } if (null == bindingListSource || null == _viewContext) { return; } var newItemProperties = bindingListSource.ItemProperties; if (!Equals(newItemProperties, _itemProperties)) { var newColumns = new List <DataGridViewColumn>(); for (int i = 0; i < newItemProperties.Count; i++) { var propertyDescriptor = newItemProperties[i]; var column = _viewContext.CreateGridViewColumn(propertyDescriptor); if (null != column) { newColumns.Add(column); } } if (newColumns.Count > 0) { Columns.Clear(); AddColumns(newColumns.ToArray()); } _itemProperties = newItemProperties; } UpdateColumnFormats(false); }
protected virtual void UpdateColumns() { var bindingListSource = DataSource as BindingListSource; if (DesignMode) { return; } if (null == bindingListSource || null == _viewContext) { return; } var newItemProperties = ImmutableList.ValueOf(bindingListSource.GetItemProperties(null).Cast <PropertyDescriptor>()); if (Equals(newItemProperties, _itemProperties)) { return; } var newColumns = new List <DataGridViewColumn>(); foreach (var propertyDescriptor in newItemProperties) { var column = _viewContext.CreateGridViewColumn(propertyDescriptor); if (null != column) { newColumns.Add(column); } } if (newColumns.Count > 0) { Columns.Clear(); Columns.AddRange(newColumns.ToArray()); } _itemProperties = newItemProperties; }
protected virtual void UpdateColumns() { if (_inUpdateColumns) { return; } try { _inUpdateColumns = true; var bindingListSource = DataSource as BindingListSource; if (DesignMode) { return; } if (null == bindingListSource || null == _viewContext) { return; } var columnsToHide = new HashSet <string>(); var clusteredProperties = (bindingListSource.ReportResults as ClusteredReportResults)?.ClusteredProperties; if (clusteredProperties != null) { columnsToHide.UnionWith(clusteredProperties.GetAllColumnHeaderProperties().Select(p => p.Name)); } var newItemProperties = bindingListSource.ItemProperties; if (!Equals(newItemProperties, _itemProperties)) { var newColumns = new List <DataGridViewColumn>(); for (int i = 0; i < newItemProperties.Count; i++) { var propertyDescriptor = newItemProperties[i]; if (columnsToHide.Contains(propertyDescriptor.Name)) { continue; } var column = _viewContext.CreateGridViewColumn(propertyDescriptor); if (null != column) { newColumns.Add(column); } } if (newColumns.Count > 0) { Columns.Clear(); AddColumns(newColumns.ToArray()); } _itemProperties = newItemProperties; } UpdateColumnFormats(false); UpdateColorScheme(); } finally { _inUpdateColumns = false; } }