// Called before detaching ColumnVirtualizationManager from DataGridContext
        protected virtual void Uninitialize()
        {
            this.ResetInternalState();

            m_dataGridContext.PropertyChanged -= new PropertyChangedEventHandler(this.DataGridContext_PropertyChanged);
            ItemsSourceChangeCompletedEventManager.RemoveListener(m_dataGridContext.DataGridControl, this);
            ViewChangedEventManager.RemoveListener(m_dataGridContext.DataGridControl, this);
            ThemeChangedEventManager.RemoveListener(m_dataGridContext.DataGridControl, this);
            VisibleColumnsUpdatedEventManager.RemoveListener(m_dataGridContext.Columns, this);

            m_dataGridContext = null;
        }