public void LoadColumns()
        {
            if (!Config.Columns.ContainsKey(key))
            {
                Config.Columns[key] = new List <ColumnInfo>();
            }

            if (Config.Columns.ContainsKey(key))
            {
                if (Config.ResetColumns.Contains(key))
                {
                    Config.ResetColumns.Remove(key);
                    Config.Columns[key].Clear();
                }

                for (int i = 0; i < Config.Columns[key].Count; i++)
                {
                    var item = Config.Columns[key][i];

                    int index = FindIndex(_gridViewColumns, item.Identifier);
                    if (index >= 0)
                    {
                        int width = item.Width;
                        if (width >= 0)
                        {
                            _gridViewColumns[index].Width = width;
                            if (item.NewIndex >= 0)
                            {
                                if (item.NewIndex < _gridViewColumns.Count)
                                {
                                    _gridViewColumns.Move(index, item.NewIndex);
                                }
                                else
                                {
                                    Config.Columns[key].Remove(item);
                                    i--;
                                }
                            }
                        }
                    }
                }
            }
        }
        internal void ApplyColumnSettings(List <ColumnInfo> newColumns)
        {
            GridViewColumnCollection columns = (lstCatalogMods.View as GridView).Columns;

            for (int i = 0; i < newColumns.Count; i++)
            {
                // get the current index of the column
                int colIndex = columns.ToList().FindIndex(c => ColumnTranslations[((c.Header as GridViewColumnHeader).Content as string)] == newColumns[i].Name);

                // apply the new width if the column does not auto resize
                if (!newColumns[i].AutoResize)
                {
                    columns[colIndex].Width = newColumns[i].Width;
                }

                // move the column to expected index
                columns.Move(colIndex, i);
            }

            RecalculateColumnWidths(); // call this to have auto resize columns recalculate
        }
Esempio n. 3
0
        private void SetupColumns()
        {
            OutlinerDocument document = __Document;
            __OutlinerTreeColumns = (GridViewColumnCollection)this.FindResource("gvcc");

            while (__OutlinerTreeColumns.Count > 0)
                __OutlinerTreeColumns.RemoveAt(__OutlinerTreeColumns.Count - 1);

            for (int i = 0; i < document.ColumnDefinitions.Count; i++)
                AddColumnBinding(document.ColumnDefinitions[i], i);

            if (document.ColumnDefinitions.OrderOnInit != null)
            {
                string[] ids = document.ColumnDefinitions.OrderOnInit.Split(new char[] { ';' });
                for (int i = 0; i < ids.Length; i++)
                {
                    int newViewId = int.Parse(ids[i]);
                    int currentViewId = GetViewColumnId(i);
                    __OutlinerTreeColumns.Move(currentViewId, newViewId);
                }
                document.ColumnDefinitions.OrderOnInit = null;
            }

            OutlinerTree.HeaderVisible = (document.ColumnDefinitions.Count > 1) ? Visibility.Visible : Visibility.Collapsed;
            AdjustColumnSizes();
        }
Esempio n. 4
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="columns"></param>
 /// <param name="name"></param>
 /// <param name="index"></param>
 public static void Move(this GridViewColumnCollection columns, string name, int index)
 {
     columns.Move(columns[name].Index, index);
 }