internal void OnQueryGroups(QueryGroupsEventArgs e)
 {
     if (this.QueryGroups != null)
     {
         this.QueryGroups(this, e);
     }
 }
        internal List <GroupNameCountPair> OnQueryGroups(DataGridVirtualizingCollectionViewGroup parentGroup)
        {
            ObservableCollection <GroupDescription> groupDescriptions = this.GroupDescriptions;
            int nextLevel = parentGroup.Level + 1;

            Debug.Assert((groupDescriptions != null) && (groupDescriptions.Count > nextLevel));

            QueryGroupsEventArgs e = new QueryGroupsEventArgs(this, parentGroup, groupDescriptions[nextLevel]);

            if (this.QueryGroups != null)
            {
                this.QueryGroups(this, e);
            }

            DataGridVirtualizingCollectionViewSource source = this.ParentCollectionViewSourceBase as DataGridVirtualizingCollectionViewSource;

            if (source != null)
            {
                source.OnQueryGroups(e);
            }

            return(e.ChildGroupNameCountPairs);
        }