public static DataGridTableStyle GenerateStyle(Type t, string[] displayPropertyNames) { DataGridTableStyle dgts = QMDataGrid.GenerateCommonDataGridTableStyle(); if (displayPropertyNames != null) { PropertyInfo[] propertyInfos = t.GetProperties(); foreach (string displayPropertyName in displayPropertyNames) { foreach (PropertyInfo property in propertyInfos) { if (property.Name != displayPropertyName) { continue; } else { DataGridColumnStyle dgcs = null; if (property.PropertyType == typeof(bool)) { dgcs = new DataGridBoolColumn(); } else { dgcs = new DataGridTextBoxColumn(); dgcs.Width = 200; } dgcs.MappingName = property.Name; dgcs.HeaderText = DataGridDictionary.Instance.GetDataGridPropertyTitle(string.Format("{0}.{1}", t.FullName, property.Name)); dgts.GridColumnStyles.Add(dgcs); break; } } } } return(dgts); }
public static void SetStyle(DataGrid grid, object dataSource, string[] displayPropertyNames, Type objectType) { DataGridTableStyle dgts = QMDataGrid.GenerateCommonDataGridTableStyle(); dgts.SelectionBackColor = System.Drawing.Color.Orange; dgts.SelectionForeColor = System.Drawing.Color.White; dgts.RowHeadersVisible = false; grid.TableStyles.Clear(); grid.TableStyles.Add(dgts); if (displayPropertyNames == null || dataSource == null) { return; } IList listSource = null; IList list = dataSource as IList; if (list != null) { listSource = list; } IListSource listS = dataSource as IListSource; if (listS != null) { listSource = listS.GetList(); } if (listSource != null) { PropertyInfo[] propertyInfos = objectType.GetProperties(); foreach (string displayPropertyName in displayPropertyNames) { foreach (PropertyInfo property in propertyInfos) { if (property.Name != displayPropertyName) { continue; } else { DataGridColumnStyle dgcs = null; string headText = DataGridDictionary.Instance.GetDataGridPropertyTitle(string.Format("{0}.{1}", objectType.FullName, property.Name)); if (property.PropertyType == typeof(bool)) { dgcs = new DataGridBoolColumn(); dgcs.Width = GetColumnWidth(grid, property, listSource, headText); dgcs.HeaderText = headText; } else { dgcs = new DataGridTextBoxColumn(); dgcs.Width = GetColumnWidth(grid, property, listSource, headText); dgcs.HeaderText = headText; } dgcs.MappingName = property.Name; dgcs.Alignment = HorizontalAlignment.Center; dgts.GridColumnStyles.Add(dgcs); break; } } } dgts.MappingName = listSource.GetType().Name; } }