Esempio n. 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);
        }
Esempio n. 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);
        }
Esempio n. 3
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;
            }
        }