Пример #1
0
        /// <summary>
        /// Initializes a new instance of a <see cref="SortDialog"/>.
        /// </summary>
        public SortDialog(C1FlexGridBook owner)
            : this()
        {
            // save reference to owner grid (the one being sorted)
            _owner = owner;

            // initialize sort descriptors
            _sdc.Clear();
            var sel = _owner.Selection;
            if (sel.IsValid)
            {
                for (int c = sel.LeftColumn; c <= sel.RightColumn; c++)
                {
                    var sd = new UnboundSortDescription(_owner.Columns[c], ListSortDirection.Ascending);
                    _sdc.Add(sd);
                }
            }
            else
            {
                _sdc.Add(new UnboundSortDescription());
            }

            // update UI when the collection/selection change
            _flex.SelectionChanged += _flex_SelectionChanged;

            // add data map to "Column" column
            var col = _flex.Columns["Column"];
            var dctColumn = new Dictionary<Column, string>();
            foreach (var c in _owner.Columns)
            {
                dctColumn[c] = GetColumnName(c);
            }
            col.ValueConverter = new ColumnValueConverter(dctColumn);

            // add data map to "Direction" column
            col = _flex.Columns["Direction"];
            var dctOrder = new Dictionary<ListSortDirection, string>();
            dctOrder[ListSortDirection.Ascending] = "Ascending";
            dctOrder[ListSortDirection.Descending] = "Descending";
            col.ValueConverter = new ColumnValueConverter(dctOrder);

            // show sort descriptors on grid
            _flex.ItemsSource = _sdc;
        }
Пример #2
0
 // copy a sort level
 void _btnCopyLevel_Click(object sender, RoutedEventArgs e)
 {
     var index = _flex.SelectedIndex;
     var item = _sdc[index];
     var sd = new UnboundSortDescription(item.Column, item.Direction);
     _sdc.Insert(index + 1, sd);
     _flex.SelectedIndex++;
 }