public static GridCustomizations GetGridExternalInformations(XamDataGrid grid) { var gridCustomizations = new GridCustomizations(); foreach (var field in grid.FieldLayouts[0].Fields) { //field.Name if (field.CellValuePresenterStyle?.Setters?.Count > 0) { ColumnSettings columnSettings = new ColumnSettings(); foreach (Setter r in field.CellValuePresenterStyle.Setters) { if (r.Property.Name == Constants.ForegroundKey) { columnSettings.ForeColor = r.Value.ToString(); } else if (r.Property.Name == Constants.BackgroundKey) { columnSettings.BackGroundColor = r.Value.ToString(); } } if (columnSettings.HasData) { gridCustomizations.ColumnsStyle[field.Name] = columnSettings; } } } return(gridCustomizations); }
private void LoadCustomGridSettings(XamDataGrid grid, GridCustomizations gridCustomizations) { foreach (var gridCustomization in gridCustomizations.ColumnsStyle.Where(x => x.Value.HasData)) { string columnName = gridCustomization.Key; var column = grid.FieldLayouts[0].Fields.FirstOrDefault(x => x.Name == columnName); var style = new Style(typeof(CellValuePresenter)); if (!string.IsNullOrEmpty(gridCustomization.Value.ForeColor)) { style.Setters.Add(new Setter(Control.ForegroundProperty, new SolidColorBrush((Color)ColorConverter.ConvertFromString(gridCustomization.Value.ForeColor)))); } if (!string.IsNullOrEmpty(gridCustomization.Value.BackGroundColor)) { style.Setters.Add(new Setter(Control.BackgroundProperty, new SolidColorBrush((Color)ColorConverter.ConvertFromString(gridCustomization.Value.BackGroundColor)))); } column.CellValuePresenterStyle = style; } }