private void OnCellRequestBringIntoView(object sender, RequestBringIntoViewEventArgs e)
        {
            Cell cell = e.Source as Cell;

            if (cell == null)
            {
                return;
            }

            // Make sure the the current row if the cell's parent row.
            Row parentRow = cell.ParentRow;

            if (parentRow != m_parentRow)
            {
                this.Unregister(cell);
                return;
            }

            // Do not process the bring into view for a templated cell.
            if (this.IsTemplatedCell(cell))
            {
                return;
            }

            IVirtualizingCellsHost cellsHost = parentRow.CellsHostPanel as IVirtualizingCellsHost;

            if (cellsHost != null)
            {
                e.Handled = cellsHost.BringIntoView(cell);
            }
        }
        public void SetCellLogicalParent(UIElement targetElement)
        {
            IVirtualizingCellsHost virtualizingCellsHost = m_parentFixedCellPanel as IVirtualizingCellsHost;

            if ((virtualizingCellsHost != null) && (virtualizingCellsHost.CanModifyLogicalParent == false))
            {
                this.SetLogicalParent(targetElement);
            }
        }