public int GetGroupIndex( Group group ) { if( group == null ) throw new ArgumentNullException( "group" ); this.EnsureNodeTreeCreated(); GeneratorNodeHelper nodeHelper = new GeneratorNodeHelper( m_startNode, 0, 0 ); if( nodeHelper.FindGroup( group.CollectionViewGroup ) ) return nodeHelper.Index; //the item was not found in this generator's content... check all the detail generators foreach( KeyValuePair<object, List<DetailGeneratorNode>> itemToDetails in m_masterToDetails ) { foreach( DetailGeneratorNode detailNode in itemToDetails.Value ) { int groupIndex = detailNode.DetailGenerator.GetGroupIndex( group ); if( groupIndex > -1 ) return groupIndex + this.FindGlobalIndexForDetailNode( detailNode ); } } return -1; }