using System; using System.Collections.Generic; using Infragistics.Win.UltraWinTree; namespace YourNameSpaceHere { public class TreeSortSettings { #region Private Data private UltraTree _tree; private List> _treeSortColumns; #endregion #region Public Members static public TreeSortSettings FromTree(UltraTree tree) { return new TreeSortSettings(tree, false); } static public TreeSortSettings FromTree(UltraTree tree, bool clearTreeSortSettingsAfterSaving) { return new TreeSortSettings(tree, clearTreeSortSettingsAfterSaving); } public void Restore() { SortedColumnsCollection sortedColumns = _tree.ColumnSettings.RootColumnSet.SortedColumns; if (sortedColumns.Count > 0) { sortedColumns.Clear(); } foreach (KeyValuePair sortColumnInfo in _treeSortColumns) { sortedColumns.Add(sortColumnInfo.Key, sortColumnInfo.Value == SortType.Ascending); } } #endregion #region Protected Members protected TreeSortSettings(UltraTree tree, bool clearTreeSortSettingsAfterSaving) { this._tree = tree; SortedColumnsCollection sortedColumns = tree.ColumnSettings.RootColumnSet.SortedColumns; this._treeSortColumns = new List>(sortedColumns.Count); foreach (UltraTreeNodeColumn sortedColumn in sortedColumns) { _treeSortColumns.Add(new KeyValuePair(sortedColumn, sortedColumn.SortType)); } if (clearTreeSortSettingsAfterSaving) { sortedColumns.Clear(); } } #endregion } }