void IHierarchyObj.Traverse(ProcessingStages operation, ITraversalContext traversalContext) { if (m_sortHierarchyStruct != null) { bool ascending = true; RuntimeSortFilterEventInfo runtimeSortFilterEventInfo = m_sortHierarchyStruct.SortInfo.Value(); if (runtimeSortFilterEventInfo.EventSource.UserSort.SortExpressionScope == null) { ascending = runtimeSortFilterEventInfo.SortDirection; } m_sortHierarchyStruct.SortTree.Traverse(operation, ascending, traversalContext); } if (m_dataHolder != null) { using (m_dataHolder.PinValue()) { m_dataHolder.Value().Traverse(operation, traversalContext); } } if (m_dataRowHolder != null) { using (m_hierarchyRoot.PinValue()) { m_dataRowHolder.Traverse(operation, traversalContext, m_hierarchyRoot.Value()); } } }
void IHierarchyObj.Traverse(ProcessingStages operation, ITraversalContext traversalContext) { if (m_dataRowHolder != null) { m_dataRowHolder.Traverse(operation, traversalContext, this); } else { m_sortTree.Traverse(operation, m_sortExpression.Direction, traversalContext); } }