public static IDataGridWpfColumn ToDataGridWpfColumn(SysDataGridColumn dataGridColumn) { IDataGridWpfColumn column = dataGridColumn switch { System.Windows.Controls.DataGridTextColumn => new WpfDataGridTextColumn(), System.Windows.Controls.DataGridComboBoxColumn => new WpfDataGridComboBoxColumn(), System.Windows.Controls.DataGridCheckBoxColumn => new WpfDataGridCheckBoxColumn(), System.Windows.Controls.DataGridTemplateColumn => new WpfDataGridTemplateColumn(), _ => new WpfDataGridTextColumn(), }; TransferProperties(dataGridColumn, column); if (dataGridColumn is System.Windows.Controls.DataGridCheckBoxColumn) { return(column); } CloneBinding(dataGridColumn as System.Windows.Controls.DataGridBoundColumn, column as System.Windows.Controls.DataGridBoundColumn); // if (dataGridColumn is System.Windows.Controls.DataGridTemplateColumn dgtc) // { // var c3 = column as System.Windows.Controls.DataGridTemplateColumn; // } // if (dataGridColumn is System.Windows.Controls.DataGridComboBoxColumn dgcbc) // { // var c2 = column as System.Windows.Controls.DataGridComboBoxColumn; // } return(column); }
public static IDataGridWpfColumn CreateWpfColumn(SysDataGridColumn dataGridColumn, System.Windows.Controls.DataGridAutoGeneratingColumnEventArgs e) { IDataGridWpfColumn column = CreateWpfColumnByDataType(e.PropertyType); column.FieldName = e.PropertyName; column.IsColumnFiltered = true; var pd = e.PropertyDescriptor as System.ComponentModel.PropertyDescriptor; var displayNameAttribute = pd.Attributes.OfType <DisplayNameAttribute>().FirstOrDefault(); var dataFormatAttribute = pd.Attributes.OfType <TMP.Shared.DataFormatAttribute>().FirstOrDefault(); string name = (displayNameAttribute != null) ? displayNameAttribute.DisplayName : e.PropertyName; string format = dataFormatAttribute?.DataFormatString; TransferProperties(dataGridColumn, column, name); if (column is System.Windows.Controls.DataGridBoundColumn dgbc) { dgbc.Binding = new Binding(e.PropertyName) { Mode = BindingMode.OneWay }; dgbc.Binding.StringFormat = format; } return(column); }
public static IDataGridWpfColumn ToDataGridWpfColumn(DataGridWpfColumnViewModel dataGridWpfColumn) { SysDataGridColumn dataGridColumn = dataGridWpfColumn.DataType switch { Type t when t == typeof(bool) => new WpfDataGridCheckBoxColumn(), Type t when t == typeof(string) => new WpfDataGridTextColumn(), Type t when t == typeof(byte) || t == typeof(sbyte) || t == typeof(int) || t == typeof(uint) || t == typeof(short) || t == typeof(ushort) || t == typeof(long) || t == typeof(ulong) || t == typeof(float) || t == typeof(double) || t == typeof(decimal) || t == typeof(bool) || t == typeof(char) || t.BaseType == typeof(Enum) => new WpfDataGridTextColumn(), Type t when t == typeof(object) => new WpfDataGridTextColumn() { SortMemberPath = dataGridWpfColumn.FieldName }, // DataGridWpf.DataGridTemplateColumn(), _ => new WpfDataGridTextColumn(), }; dataGridColumn.SetValue(FilterDataGrid.ColumnViewModelProperty, dataGridWpfColumn); (dataGridColumn as IDataGridWpfColumn).FieldName = dataGridWpfColumn.FieldName; dataGridColumn.Header = dataGridWpfColumn.Title; dataGridColumn.Visibility = dataGridWpfColumn.IsVisible ? System.Windows.Visibility.Visible : System.Windows.Visibility.Collapsed; if (dataGridWpfColumn.DisplayIndex != -1) { dataGridColumn.DisplayIndex = dataGridWpfColumn.DisplayIndex; } if (dataGridColumn is System.Windows.Controls.DataGridBoundColumn dgbc) { dgbc.Binding = new Binding() { Mode = BindingMode.OneWay, Path = new System.Windows.PropertyPath(dataGridWpfColumn.FieldName), StringFormat = dataGridWpfColumn.CellContentStringFormat, }; } if (string.IsNullOrEmpty(dataGridWpfColumn.CellContentExportStringFormat) == false) { dataGridColumn.ClipboardContentBinding = new Binding() { Mode = BindingMode.OneWay, Path = new System.Windows.PropertyPath(dataGridWpfColumn.FieldName), StringFormat = dataGridWpfColumn.CellContentExportStringFormat, }; } return(dataGridColumn as IDataGridWpfColumn); }
private static void TransferProperties(SysDataGridColumn dataGridColumn, IDataGridWpfColumn column, string customHeader = null) { var c = column as SysDataGridColumn; if (c == null) { System.Diagnostics.Debugger.Break(); } c.Header = string.IsNullOrEmpty(customHeader) ? dataGridColumn.Header : customHeader; c.Visibility = dataGridColumn.Visibility; if (dataGridColumn.DisplayIndex != -1) { c.DisplayIndex = dataGridColumn.DisplayIndex; } }
public static DataGridWpfColumnViewModel GetDataGridWpfColumnViewModel(SysDataGridColumn dataGridColumn) { DataGridWpfColumnViewModel dataGridWpfColumn = new() { Title = (string)dataGridColumn.Header, IsVisible = dataGridColumn.Visibility == System.Windows.Visibility.Visible, DisplayIndex = dataGridColumn.DisplayIndex, }; if (dataGridColumn is System.Windows.Controls.DataGridBoundColumn boundColumn && boundColumn.Binding != null) { dataGridWpfColumn.FieldName = ((Binding)boundColumn.Binding).Path.Path; dataGridWpfColumn.CellContentStringFormat = ((Binding)boundColumn.Binding).StringFormat; } dataGridWpfColumn.Tag = dataGridColumn; return(dataGridWpfColumn); }
private void ExportDataItemCore(FilterDataGrid filterDataGrid, ClipboardExporterBase clipboardExporter, object item, System.Windows.Controls.DataGridCellInfo[] cells, DataGridWpfColumnViewModel[] wpfColumns, System.Windows.Controls.DataGridColumn[] dataGridColumns) { clipboardExporter.StartDataItem(filterDataGrid, item); // Ensure the count does not exceeds the columns count int columnsCount = wpfColumns.Length; Type itemType = item.GetType(); for (int i = 0; i < columnsCount; i++) { DataGridWpfColumnViewModel wpfColumn = wpfColumns[i]; System.Windows.Controls.DataGridColumn dataGidColumn = dataGridColumns[i]; System.Windows.Controls.DataGridCellInfo dataGridCellInfo = cells[i]; (object rawValue, object formattedValue)field = (default, default);
public DataGridColumnHeaderItemAutomationPeer(Object item, System.Windows.Controls.DataGridColumn column, DataGridColumnHeadersPresenterAutomationPeer peer) : base(default(Object), default(ItemsControlAutomationPeer)) { }
public DataGridCellItemAutomationPeer(Object item, System.Windows.Controls.DataGridColumn dataGridColumn) { }