Пример #1
0
        public bool Equals(DataGridColumnSettings other)
        {
            if (other == null)
            {
                return(false);
            }

            return(Header.Equals(other.Header, StringComparison.InvariantCultureIgnoreCase));
        }
        private static void SaveSettings(DataGrid dataGrid, DataGridColumnSettingsType settingsType)
        {
            var settings = GetDataGridSettings(dataGrid.Name);

            var columns = dataGrid.Columns.Where(column => column.Header != null);

            settings.ColumnsSetting ??= new List <DataGridColumnSettings>();

            foreach (var column in columns)
            {
                var columnSettings = settings.ColumnsSetting.FirstOrDefault(iColumnSettings => iColumnSettings.Header.Equals(
                                                                                column.Header.ToString(), StringComparison.InvariantCultureIgnoreCase));

                if (columnSettings != null)
                {
                    switch (settingsType)
                    {
                    case DataGridColumnSettingsType.DisplayIndex:
                        columnSettings.DisplayIndex = column.DisplayIndex;
                        break;

                    case DataGridColumnSettingsType.Sorting:
                        columnSettings.SortDirection = column.SortDirection;
                        break;

                    case DataGridColumnSettingsType.Width:
                        columnSettings.Width = new DataGridLengthSettings
                        {
                            Value        = column.Width.Value,
                            DesiredValue = column.Width.DesiredValue,
                            DisplayValue = column.Width.DisplayValue,
                            UnitType     = column.Width.UnitType
                        };
                        break;

                    case DataGridColumnSettingsType.Visibility:
                        columnSettings.Visibility = column.Visibility;
                        break;
                    }
                }
                else
                {
                    columnSettings = new DataGridColumnSettings
                    {
                        Header       = column.Header.ToString(),
                        DisplayIndex = column.DisplayIndex,
                        Width        = new DataGridLengthSettings
                        {
                            Value        = column.Width.Value,
                            DesiredValue = column.Width.DesiredValue,
                            DisplayValue = column.Width.DisplayValue,
                            UnitType     = column.Width.UnitType
                        },
                        SortDirection = column.SortDirection,
                        Visibility    = column.Visibility
                    };

                    settings.ColumnsSetting.Add(columnSettings);
                }
            }

            settings.Save();
        }
 private static void SetColumnVisibility(DataGrid dataGrid, DataGridColumn column, DataGridColumnSettings settings)
 {
     column.Visibility = settings.Visibility;
 }
        private static void SetColumnSorting(DataGrid dataGrid, DataGridColumn column, DataGridColumnSettings settings)
        {
            column.SortDirection = settings.SortDirection;

            if (!column.SortDirection.HasValue)
            {
                return;
            }

            dataGrid.Items.SortDescriptions.Clear();

            dataGrid.Items.SortDescriptions.Add(new SortDescription(column.SortMemberPath, column.SortDirection.Value));

            dataGrid.Items.Refresh();
        }
 private static void SetColumnDisplayIndex(DataGrid dataGrid, DataGridColumn column, DataGridColumnSettings settings)
 {
     if (settings.DisplayIndex >= 0 && settings.DisplayIndex < dataGrid.Columns.Count)
     {
         column.DisplayIndex = settings.DisplayIndex;
     }
 }
 private static void SetColumnWidth(DataGrid dataGrid, DataGridColumn column, DataGridColumnSettings settings)
 {
     column.Width = new DataGridLength(settings.Width.Value, settings.Width.UnitType, settings.Width.DesiredValue, settings.Width.DisplayValue);
 }