public DataGridRowGroupInfo( DataGridCollectionViewGroup collectionViewGroup, bool isVisible, int level, int slot, int lastSubItemSlot) { CollectionViewGroup = collectionViewGroup; IsVisible = isVisible; Level = level; Slot = slot; LastSubItemSlot = lastSubItemSlot; }
private void GetParentGroupsContainingItemIndex(int index, out CollectionViewGroup[] parentGroups) { DataGridCollectionView collectionView = m_dataGridContext.ItemsSourceCollection as DataGridCollectionView; if (collectionView != null) { RawItem rawItem = collectionView.GetRawItemAt(index); List <CollectionViewGroup> groupList = new List <CollectionViewGroup>(16); DataGridCollectionViewGroup parentGroup = rawItem.ParentGroup; while ((parentGroup != null) && !(parentGroup is DataGridCollectionViewGroupRoot)) { groupList.Add(parentGroup); parentGroup = parentGroup.Parent; } groupList.Reverse(); parentGroups = groupList.ToArray(); } else { CollectionView items = m_dataGridContext.Items; ReadOnlyObservableCollection <object> groups = items.Groups; if (groups != null) { List <CollectionViewGroup> groupList = new List <CollectionViewGroup>(16); this.GetParentGroupsContainingItemIndex(index, groups, groupList); parentGroups = groupList.ToArray(); } else { parentGroups = new DataGridCollectionViewGroup[0]; } } }
private void GetParentGroupsContainingItemIndex( int index, out CollectionViewGroup[] parentGroups ) { DataGridCollectionView collectionView = m_dataGridContext.ItemsSourceCollection as DataGridCollectionView; if( collectionView != null ) { RawItem rawItem = collectionView.GetRawItemAt( index ); List<CollectionViewGroup> groupList = new List<CollectionViewGroup>( 16 ); DataGridCollectionViewGroup parentGroup = rawItem.ParentGroup; while( ( parentGroup != null ) && !( parentGroup is DataGridCollectionViewGroupRoot ) ) { groupList.Add( parentGroup ); parentGroup = parentGroup.Parent; } groupList.Reverse(); parentGroups = groupList.ToArray(); } else { CollectionView items = m_dataGridContext.Items; ReadOnlyObservableCollection<object> groups = items.Groups; if( groups != null ) { List<CollectionViewGroup> groupList = new List<CollectionViewGroup>( 16 ); this.GetParentGroupsContainingItemIndex( index, groups, groupList ); parentGroups = groupList.ToArray(); } else { parentGroups = new DataGridCollectionViewGroup[ 0 ]; } } }