private void CalculatePropagatedPageBreak()
        {
            Microsoft.ReportingServices.ReportRendering.DataRegion dataRegion = (Microsoft.ReportingServices.ReportRendering.DataRegion)m_owner.RenderReportItem;
            bool thisOrAnscestorHasToggle       = dataRegion.SharedHidden == Microsoft.ReportingServices.ReportRendering.SharedHiddenState.Sometimes;
            PageBreakLocation pageBreakLocation = PageBreakHelper.GetPageBreakLocation(dataRegion.PageBreakAtStart, dataRegion.PageBreakAtEnd);

            if (m_members != null && m_members.Count > 0)
            {
                pageBreakLocation = PageBreakHelper.MergePageBreakLocations(CalculatePropagatedPageBreak(m_members, thisOrAnscestorHasToggle, OwnerTablix.SnapshotTablixType == DataRegion.Type.Table), pageBreakLocation);
            }
            OwnerTablix.SetPageBreakLocation(pageBreakLocation);
        }
        internal void ResetContext(bool clearCache)
        {
            if (clearCache)
            {
                OwnerTablix.ResetMemberCellDefinitionIndex(0);
            }
            if (m_members == null || !OwnerTablix.IsOldSnapshot)
            {
                return;
            }
            switch (OwnerTablix.SnapshotTablixType)
            {
            case DataRegion.Type.List:
                if (!m_isColumn)
                {
                    ((ShimListMemberCollection)m_members).UpdateContext(OwnerTablix.RenderList.Contents);
                }
                break;

            case DataRegion.Type.Table:
                if (!m_isColumn)
                {
                    ((ShimTableMemberCollection)m_members).UpdateContext();
                }
                break;

            case DataRegion.Type.Matrix:
            {
                MatrixMemberInfoCache matrixMemberCellIndexes = null;
                if (clearCache && m_isColumn)
                {
                    matrixMemberCellIndexes = CreateMatrixMemberCache();
                }
                ((ShimMatrixMemberCollection)m_members).UpdateContext(matrixMemberCellIndexes);
                break;
            }
            }
        }