Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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;
            }
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
            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)
 {
 }