/// <summary> /// Method which returns a default control for column header drag indicator /// </summary> private Control CreateColumnHeaderDragIndicator() { Debug.Assert(_draggingSrcColumnHeader != null, "Dragging header is null"); DataGridColumnFloatingHeader floatingHeader = new DataGridColumnFloatingHeader(); floatingHeader.ReferenceHeader = _draggingSrcColumnHeader; return(floatingHeader); }
// Token: 0x06005D11 RID: 23825 RVA: 0x001A305C File Offset: 0x001A125C private void FinishColumnHeaderDrag(bool isCancel) { this._prepareColumnHeaderDragging = false; this._isColumnHeaderDragging = false; this._draggingSrcColumnHeader.SuppressClickEvent = false; if (this._columnHeaderDragIndicator != null) { this._columnHeaderDragIndicator.Visibility = Visibility.Collapsed; DataGridColumnFloatingHeader dataGridColumnFloatingHeader = this._columnHeaderDragIndicator as DataGridColumnFloatingHeader; if (dataGridColumnFloatingHeader != null) { dataGridColumnFloatingHeader.ClearHeader(); } base.RemoveVisualChild(this._columnHeaderDragIndicator); } if (this._columnHeaderDropLocationIndicator != null) { this._columnHeaderDropLocationIndicator.Visibility = Visibility.Collapsed; DataGridColumnDropSeparator dataGridColumnDropSeparator = this._columnHeaderDropLocationIndicator as DataGridColumnDropSeparator; if (dataGridColumnDropSeparator != null) { dataGridColumnDropSeparator.ReferenceHeader = null; } base.RemoveVisualChild(this._columnHeaderDropLocationIndicator); } DragCompletedEventArgs e = new DragCompletedEventArgs(this._columnHeaderDragCurrentPosition.X - this._columnHeaderDragStartPosition.X, this._columnHeaderDragCurrentPosition.Y - this._columnHeaderDragStartPosition.Y, isCancel); this.ParentDataGrid.OnColumnHeaderDragCompleted(e); this._draggingSrcColumnHeader.InvalidateArrange(); if (!isCancel) { int num = -1; bool flag = this.IsMousePositionValidForColumnDrag(2.0, out num); DataGridColumn column = this._draggingSrcColumnHeader.Column; if (column != null && flag && num != column.DisplayIndex) { column.DisplayIndex = num; DataGridColumnEventArgs e2 = new DataGridColumnEventArgs(this._draggingSrcColumnHeader.Column); this.ParentDataGrid.OnColumnReordered(e2); } } this._draggingSrcColumnHeader = null; this._columnHeaderDragIndicator = null; this._columnHeaderDropLocationIndicator = null; }
/// <summary> /// Method which completes the column header drag. Includes raising of events and changing column display index if needed. /// </summary> private void FinishColumnHeaderDrag(bool isCancel) { Debug.Assert(ParentDataGrid != null, "ParentDataGrid is null"); _prepareColumnHeaderDragging = false; _isColumnHeaderDragging = false; _draggingSrcColumnHeader.SuppressClickEvent = false; if (_columnHeaderDragIndicator != null) { _columnHeaderDragIndicator.Visibility = Visibility.Collapsed; DataGridColumnFloatingHeader floatingHeader = _columnHeaderDragIndicator as DataGridColumnFloatingHeader; if (floatingHeader != null) { floatingHeader.ClearHeader(); } RemoveVisualChild(_columnHeaderDragIndicator); } if (_columnHeaderDropLocationIndicator != null) { _columnHeaderDropLocationIndicator.Visibility = Visibility.Collapsed; DataGridColumnDropSeparator separator = _columnHeaderDropLocationIndicator as DataGridColumnDropSeparator; if (separator != null) { separator.ReferenceHeader = null; } RemoveVisualChild(_columnHeaderDropLocationIndicator); } DragCompletedEventArgs dragCompletedEventArgs = new DragCompletedEventArgs( _columnHeaderDragCurrentPosition.X - _columnHeaderDragStartPosition.X, _columnHeaderDragCurrentPosition.Y - _columnHeaderDragStartPosition.Y, isCancel); ParentDataGrid.OnColumnHeaderDragCompleted(dragCompletedEventArgs); _draggingSrcColumnHeader.InvalidateArrange(); if (!isCancel) { int newDisplayIndex = -1; bool dragEndPositionValid = IsMousePositionValidForColumnDrag( 2.0, out newDisplayIndex); DataGridColumn column = _draggingSrcColumnHeader.Column; if (column != null && dragEndPositionValid && newDisplayIndex != column.DisplayIndex) { column.DisplayIndex = newDisplayIndex; DataGridColumnEventArgs columnEventArgs = new DataGridColumnEventArgs(_draggingSrcColumnHeader.Column); ParentDataGrid.OnColumnReordered(columnEventArgs); } } _draggingSrcColumnHeader = null; _columnHeaderDragIndicator = null; _columnHeaderDropLocationIndicator = null; }