private void ApplyColumnAnnotationSettings(IGridColumn <T> column, GridColumnAttribute options) { column.Encoded(options.EncodeEnabled) .Sanitized(options.SanitizeEnabled) .Filterable(options.FilterEnabled) .Sortable(options.SortEnabled); GridSortDirection?initialDirection = options.GetInitialSortDirection(); if (initialDirection.HasValue) { column.SortInitialDirection(initialDirection.Value); } if (!string.IsNullOrEmpty(options.FilterWidgetType)) { column.SetFilterWidgetType(options.FilterWidgetType); } if (!string.IsNullOrEmpty(options.Format)) { column.Format(options.Format); } if (!string.IsNullOrEmpty(options.Title)) { column.Titled(options.Title); } if (!string.IsNullOrEmpty(options.Width)) { column.Width = options.Width; } }
/// <summary> /// Creates column from property info using reflection /// </summary> public IGridColumn <T> CreateColumn(PropertyInfo pi) { if (!_annotations.IsColumnMapped(pi)) { return(null); //grid column not mapped } IGridColumn <T> column; GridColumnAttribute columnOpt = _annotations.GetAnnotationForColumn <T>(pi); if (columnOpt != null) { column = CreateColumn(pi, false); ApplyColumnAnnotationSettings(column, columnOpt); } else { GridHiddenColumnAttribute columnHiddenOpt = _annotations.GetAnnotationForHiddenColumn <T>(pi); if (columnHiddenOpt != null) { column = CreateColumn(pi, true); ApplyHiddenColumnAnnotationSettings(column, columnHiddenOpt); } else { column = CreateColumn(pi, false); ApplyColumnAnnotationSettings(column, new GridColumnAttribute()); } } return(column); }
public GridColumn(GridModel gridModel, GridColumnAttribute att, string propertyName, int order) { this.GridModel = gridModel; this.ColumnAttribute = att; this.PropertyName = propertyName; this.Order = order; }
public GridColumnAttribute GetAnnotationForColumn <T>(PropertyInfo pi) { pi = GetMetadataProperty <T>(pi); var gridAttr = pi.GetAttribute <GridColumnAttribute>(); GridColumnAttribute dataAnnotationAttr = gridAttr; DataAnnotationsOptions dataAnnotations = ExtractDataAnnotations(pi); if (dataAnnotations != null) { if (gridAttr == null) { dataAnnotationAttr = new GridColumnAttribute { Title = dataAnnotations.DisplayName, FilterEnabled = dataAnnotations.FilterEnabled ?? false, Format = dataAnnotations.Format }; } else { dataAnnotationAttr.Title = string.IsNullOrEmpty(gridAttr.Title) ? dataAnnotations.DisplayName : gridAttr.Title; dataAnnotationAttr.FilterEnabled = dataAnnotations.FilterEnabled ?? gridAttr.FilterEnabled; dataAnnotationAttr.Format = string.IsNullOrEmpty(gridAttr.Format) ? dataAnnotations.Format : gridAttr.Format; } } return(dataAnnotationAttr); }
private void ApplyColumnAnnotationSettings(IGridColumn <T> column, GridColumnAttribute options) { column.Encoded(options.EncodeEnabled) .Sanitized(options.SanitizeEnabled) .Filterable(options.FilterEnabled) .Sortable(options.SortEnabled); GridSortDirection?initialDirection = options.GetInitialSortDirection(); if (initialDirection.HasValue) { column.SortInitialDirection(initialDirection.Value); } GridAggregateFunction?aggregateValue = options.GetAggregateFunction(); if (aggregateValue.HasValue) { column.Aggregate(aggregateValue.Value); } if (!string.IsNullOrEmpty(options.FilterWidgetType)) { column.SetFilterWidgetType(options.FilterWidgetType); } if (!string.IsNullOrEmpty(options.Format)) { column.Format(options.Format); } if (!string.IsNullOrEmpty(options.Title)) { column.Titled(options.Title); } if (!string.IsNullOrEmpty(options.Width)) { column.Width = options.Width; } if (!string.IsNullOrEmpty(options.ToolTip)) { column.ToolTip = options.ToolTip; } if (!string.IsNullOrEmpty(options.Css)) { column.Css(options.Css); } if (!string.IsNullOrEmpty(options.BoolTrue)) { column.BoolTrue = options.BoolTrue; } if (!string.IsNullOrEmpty(options.BoolFalse)) { column.BoolFalse = options.BoolFalse; } if (!string.IsNullOrEmpty(options.AggregateFormat)) { column.AggregateFormat = options.AggregateFormat; } }
public void Constructor_CalledWithValidValue_Success() { var width = 50; var sut = new GridColumnAttribute(width); Assert.IsNotNull(sut); Assert.AreEqual(width, sut.Width); }
private static void GenerateColumns(GridControl grid) { ICollection list = grid.ItemsSource as ICollection; if (list == null || list.Count == 0) { return; } grid.Columns.Clear(); IEnumerator enumarator = list.GetEnumerator(); enumarator.MoveNext(); Type listItemType = enumarator.Current.GetType(); PropertyInfo[] properties = listItemType.GetProperties(); List <GridColumnAttribute> columns = new List <GridColumnAttribute>(); foreach (PropertyInfo propertyInfo in properties) { GridColumnAttribute gridColumnAttribute = propertyInfo.GetCustomAttribute <GridColumnAttribute>(); if (gridColumnAttribute != null) { gridColumnAttribute.Header = gridColumnAttribute.Header ?? propertyInfo.Name; gridColumnAttribute.FieldName = gridColumnAttribute.FieldName ?? propertyInfo.Name; columns.Add(gridColumnAttribute); } } columns.Sort((o, t) => { if (o.Order == 0 && t.Order == 0) { return(0); } if (o.Order == 0) { return(1); } if (t.Order == 0) { return(-1); } return(o.Order.CompareTo(t.Order)); }); foreach (GridColumnAttribute columnAttribute in columns) { GridColumn column = new GridColumn(); column.Header = columnAttribute.Header; column.FieldName = columnAttribute.FieldName; column.Name = columnAttribute.FieldName; grid.Columns.Add(column); } }
private void ResultsGrid_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e) { var column = new DataGridTextColumn(); column.Header = e.PropertyName; column.Binding = new System.Windows.Data.Binding(e.PropertyName); string units = "km"; if (Unit == Units.Mile) { units = "m"; } if (e.PropertyName == "Distance") { column.Binding.StringFormat = "{0:0.##} " + units; } GridColumnAttribute attr = null; if (Service == Services.GP) { attr = Models.Utilities.GetGridColumnAttribute(e.PropertyName, typeof(GpPractice)); } else if (Service == Services.Schools) { attr = Models.Utilities.GetGridColumnAttribute(e.PropertyName, typeof(School)); } else if (Service == Services.Dentists) { attr = Models.Utilities.GetGridColumnAttribute(e.PropertyName, typeof(Dentist)); } if (attr != null) { e.Cancel = !attr.IsDisplayed; column.Header = attr.Name; } e.Column = column; }
public ActionGridColumn(GridModel gridModel, GridColumnAttribute att, string propertyName, int order) : base(gridModel, att, propertyName, order) { }
public static void GenerateColumns(ObservableCollection <DataGridColumn> columns, GridSettings gridSettings) { try { try { columns.Clear(); } catch (ArgumentOutOfRangeException) { // DataGrid or DataGridColumn issue? // Saving VisualStudio|Options|BuildVision settings causes ArgumentOutOfRangeException (DisplayIndex) // at columns.Clear if BuildVision toolwindow was hidden since VisualStudio start (only in this case). // For the second time without any errors. columns.Clear(); } var tmpColumnsList = new List <DataGridColumn>(); foreach (PropertyInfo property in GetItemProperties()) { GridColumnAttribute columnConfiguration = property.GetCustomAttribute <GridColumnAttribute>(); if (columnConfiguration == null) { continue; } string propertyName = property.Name; GridColumnSettings columnSettings; if (gridSettings.Columns[propertyName] != null) { columnSettings = gridSettings.Columns[propertyName]; } else { columnSettings = new GridColumnSettings( propertyName, columnConfiguration.Header, columnConfiguration.Visible, columnConfiguration.DisplayIndex, columnConfiguration.Width, columnConfiguration.ValueStringFormat); gridSettings.Columns.Add(columnSettings); } DataGridBoundColumn column = CreateColumn(property); InitColumn(column, columnConfiguration, columnSettings, gridSettings.SortDescription); tmpColumnsList.Add(column); } tmpColumnsList.Sort((col1, col2) => col1.DisplayIndex.CompareTo(col2.DisplayIndex)); for (int i = 0; i < tmpColumnsList.Count; i++) { var column = tmpColumnsList[i]; // We aren't able to afford coincidence of indexes, otherwise UI will hang. column.DisplayIndex = i; columns.Add(column); } } catch (Exception ex) { ex.TraceUnknownException(); } }
private static void InitColumn( DataGridBoundColumn column, GridColumnAttribute columnConfiguration, GridColumnSettings columnSettings, SortDescription sortDescription) { if (string.IsNullOrEmpty(columnConfiguration.ImageKey)) { column.Header = columnSettings.Header; } else if (columnConfiguration.ImageKey == GridColumnAttribute.EmptyHeaderImageKey) { column.Header = null; } else { const int ImgHeight = 14; const int ImgWidth = 14; if (string.IsNullOrEmpty(columnConfiguration.ImageDictionaryUri)) { var imgRes = Resources.ResourceManager.GetObject(columnConfiguration.ImageKey); var img = (System.Drawing.Bitmap)imgRes; column.Header = new Image { Source = img.ToMediaBitmap(), Width = ImgWidth, Height = ImgHeight, Stretch = Stretch.Uniform, Tag = columnSettings.Header }; } else { var controlTemplate = VectorResources.TryGet(columnConfiguration.ImageDictionaryUri, columnConfiguration.ImageKey); column.Header = new ContentControl { Template = controlTemplate, Width = ImgWidth, Height = ImgHeight, ClipToBounds = true, Tag = columnSettings.Header }; } } column.Visibility = columnSettings.Visible ? Visibility.Visible : Visibility.Collapsed; if (columnSettings.DisplayIndex != -1) { column.DisplayIndex = columnSettings.DisplayIndex; } if (!double.IsNaN(columnSettings.Width)) { column.Width = new DataGridLength(columnSettings.Width); } if (columnSettings.ValueStringFormat != null) { column.Binding.StringFormat = columnSettings.ValueStringFormat; } if (column.GetBindedProperty() == sortDescription.SortPropertyName) { column.SortDirection = sortDescription.SortOrder.ToSystem(); } string columnName = columnSettings.Header; if (string.IsNullOrEmpty(columnName)) { columnName = columnConfiguration.Header; } column.SetValue(DataGridColumnExtensions.NameProperty, columnName); }
public Element_Name_GridColumn(GridModel gridModel, GridColumnAttribute att, string propertyName, int order) : base(gridModel, att, propertyName, order) { }
public Page_Navigation_ShowInMenu_SortableGridColumn(GridModel gridModel, GridColumnAttribute att, string propertyName, int order) : base(gridModel, att, propertyName, order) { }