private void DragSourceManager_DroppedOutside(object sender, EventArgs e) { HierarchicalGroupByControlNode hierarchicalGroupByControlNode = HierarchicalGroupByItem.GetParentHierarchicalGroupByControlNode(this); if (hierarchicalGroupByControlNode == null) { throw new DataGridInternalException(); } bool allowGroupingModification = hierarchicalGroupByControlNode.IsGroupingModificationAllowed; if (!allowGroupingModification) { return; } ObservableCollection <GroupDescription> groupDescriptions = this.ParentGroupDescriptions; if (groupDescriptions != null) { // Get the HierarchicalGroupByControl before removing us from it HierarchicalGroupByControl parentGBC = GroupingHelper.GetHierarchicalGroupByControl(this); GroupLevelDescription groupLevelDescription = this.Content as GroupLevelDescription; DataGridContext dataGridContext = DataGridControl.GetDataGridContext(this); DataGridControl parentDataGridControl = (dataGridContext != null) ? dataGridContext.DataGridControl : null; GroupingHelper.RemoveGroupDescription(groupDescriptions, groupLevelDescription, parentDataGridControl); // Notify groups have changed for NoGroupContent parentGBC.UpdateHasGroups(); // Update the HasGroups property Debug.Assert(parentGBC != null); if (parentGBC == null) { throw new DataGridInternalException("The hierarchical group-by item must be rooted by a HierarchicalGroupByControl."); } } }
void m_dragSourceManager_DroppedOutside(object sender, EventArgs e) { bool allowGroupingModification = true; GroupByControl parentGBC = this.GetParentGroupByControl(); if (parentGBC != null) { allowGroupingModification = parentGBC.IsGroupingModificationAllowed; } if (allowGroupingModification) { DataGridContext dataGridContext = DataGridControl.GetDataGridContext(this); Debug.Assert(dataGridContext != null); if (dataGridContext != null) { GroupingHelper.RemoveGroupDescription( dataGridContext.Items.GroupDescriptions, this.Content as GroupLevelDescription, dataGridContext.DataGridControl); } } }