void IDropTarget.Drop(UIElement draggedElement, RelativePoint mousePosition) { var cell = draggedElement as ColumnManagerCell; if (cell == null) { return; } var draggedElementContext = DataGridControl.GetDataGridContext(draggedElement); var lastIndex = draggedElementContext.GroupLevelDescriptions.Count - 1; if (lastIndex >= 0) { var groupByItem = this.ItemContainerGenerator.ContainerFromIndex(lastIndex) as GroupByItem; if (groupByItem == null) { throw new DataGridInternalException("groupByItem is null."); } groupByItem.HideDropMark(); } var dataGridContext = DataGridControl.GetDataGridContext(this); var dataGridControl = (dataGridContext != null) ? dataGridContext.DataGridControl : null; GroupingHelper.AppendNewGroupFromColumnManagerCell(cell, dataGridControl); }
void IDropTarget.Drop(UIElement draggedElement) { ColumnManagerCell cell = draggedElement as ColumnManagerCell; if (cell == null) { return; } HierarchicalGroupByControlNode hierarchicalGroupByControlNode = this.GetHierarchicalGroupByControlNodeFromColumnManagerCell(cell); // It may not be visible if (hierarchicalGroupByControlNode != null) { hierarchicalGroupByControlNode.HideFarDropMark(cell); } DataGridContext dataGridContext = DataGridControl.GetDataGridContext(this); DataGridControl parentGrid = (dataGridContext != null) ? dataGridContext.DataGridControl : null; GroupingHelper.AppendNewGroupFromColumnManagerCell(cell, parentGrid); // Notify groups have changed for NoGroupContent this.UpdateHasGroups(); }
void IDropTarget.Drop(UIElement draggedElement) { ColumnManagerCell cell = draggedElement as ColumnManagerCell; if (cell == null) { return; } HierarchicalGroupByControl parentGBC = GroupingHelper.GetHierarchicalGroupByControl(this); if (parentGBC == null) { throw new DataGridInternalException("The hierarchical group-by control node must be rooted by a HierarchicalGroupByControl."); } DataGridContext dataGridContext = DataGridControl.GetDataGridContext(this); DataGridControl parentGrid = (dataGridContext != null) ? dataGridContext.DataGridControl : null; GroupingHelper.AppendNewGroupFromColumnManagerCell(cell, parentGrid); // Notify groups have changed for NoGroupContent parentGBC.UpdateHasGroups(); HierarchicalGroupByControlNode hierarchicalGroupByControlNode = parentGBC.GetHierarchicalGroupByControlNodeFromColumnManagerCell(cell); if (hierarchicalGroupByControlNode == null) { return; } hierarchicalGroupByControlNode.HideFarDropMark(cell); this.HideFarDropMark(); }
void IDropTarget.Drop(UIElement draggedElement) { ColumnManagerCell cell = draggedElement as ColumnManagerCell; if (cell == null) { return; } DataGridContext draggedDetailContext = DataGridControl.GetDataGridContext(draggedElement); int lastIndex = draggedDetailContext.GroupLevelDescriptions.Count - 1; if (lastIndex > -1) { GroupByItem groupByItem = this.ItemContainerGenerator.ContainerFromIndex(lastIndex) as GroupByItem; Debug.Assert(groupByItem != null); if (groupByItem == null) { throw new DataGridInternalException(); } groupByItem.HideDropMark(); } else { this.HideDropMark(); } DataGridContext dataGridContext = DataGridControl.GetDataGridContext(this); DataGridControl parentGrid = (dataGridContext != null) ? dataGridContext.DataGridControl : null; GroupingHelper.AppendNewGroupFromColumnManagerCell(cell, parentGrid); }
void IDropTarget.Drop(UIElement draggedElement) { ColumnManagerCell draggedColumnManagerCell = draggedElement as ColumnManagerCell; if (m_dropMarkAdorner != null) { GroupLevelDescription draggedOverGroupLevelDescription = this.Content as GroupLevelDescription; DropMarkAlignment alignment = m_dropMarkAdorner.Alignment; this.HideDropMark(); if (draggedColumnManagerCell != null) { DataGridContext dataGridContext = DataGridControl.GetDataGridContext(this); DataGridControl parentGrid = (dataGridContext != null) ? dataGridContext.DataGridControl : null; GroupingHelper.AddNewGroupFromColumnManagerCell(draggedColumnManagerCell, draggedOverGroupLevelDescription, alignment, parentGrid); } else { HierarchicalGroupByItem draggedGroupByItem = draggedElement as HierarchicalGroupByItem; if (draggedGroupByItem == null) { return; } GroupLevelDescription draggedGroupLevelDescription = draggedGroupByItem.Content as GroupLevelDescription; DataGridContext dataGridContext = DataGridControl.GetDataGridContext(this); DataGridControl parentDataGridControl = (dataGridContext != null) ? dataGridContext.DataGridControl : null; GroupLevelDescription destinationGroupLevelDescription = this.Content as GroupLevelDescription; GroupingHelper.MoveGroupDescription(this.ParentColumns, this.ParentGroupDescriptions, destinationGroupLevelDescription, alignment, draggedGroupLevelDescription, parentDataGridControl); } } else { // We try to add a new Group which is not in the current GroupLevelDescriptions if (draggedColumnManagerCell == null) { return; } DataGridContext dataGridContext = DataGridControl.GetDataGridContext(this); DataGridControl parentGrid = (dataGridContext != null) ? dataGridContext.DataGridControl : null; GroupingHelper.AppendNewGroupFromColumnManagerCell(draggedColumnManagerCell, parentGrid); } HierarchicalGroupByControl parentGBC = GroupingHelper.GetHierarchicalGroupByControl(this); Debug.Assert(parentGBC != null); if (parentGBC == null) { throw new DataGridInternalException("A hierarchical group-by item must be rooted by a HierarchicalGroupByControl."); } // Notify groups have changed for NoGroupContent parentGBC.UpdateHasGroups(); }