protected override void Uninitialize() { BindingOperations.ClearBinding(this, TableViewColumnVirtualizationManager.FixedColumnCountProperty); BindingOperations.ClearBinding(this, TableViewColumnVirtualizationManager.IsVirtualizingProperty); BindingOperations.ClearBinding(this, TableViewColumnVirtualizationManager.FirstColumnCompensationOffsetProperty); if (m_scrollViewer != null) { m_scrollViewer.ScrollChanged -= new ScrollChangedEventHandler(this.ScrollViewer_ScrollChanged); } ColumnActualWidthEventManager.RemoveListener(this.DataGridContext.Columns, this); DataGridControlTemplateChangedEventManager.RemoveListener(this.DataGridContext.DataGridControl, this); CollectionChangedEventManager.RemoveListener(this.DataGridContext.Items.SortDescriptions, this); CollectionChangedEventManager.RemoveListener(this.DataGridContext.Items.GroupDescriptions, this); base.Uninitialize(); }
protected override void Initialize() { base.Initialize(); CollectionChangedEventManager.AddListener(this.DataGridContext.Items.SortDescriptions, this); CollectionChangedEventManager.AddListener(this.DataGridContext.Items.GroupDescriptions, this); ColumnActualWidthEventManager.AddListener(this.DataGridContext.Columns, this); DataGridControlTemplateChangedEventManager.AddListener(this.DataGridContext.DataGridControl, this); this.UpdateScrollViewer(); var fixedColumnCountBindingBase = new Binding(TableView.FixedColumnCountProperty.Name); fixedColumnCountBindingBase.Source = this.DataGridContext; fixedColumnCountBindingBase.Mode = BindingMode.TwoWay; BindingOperations.SetBinding(this, TableViewColumnVirtualizationManagerBase.FixedColumnCountProperty, fixedColumnCountBindingBase); var compensationOffsetBinding = new Binding(); compensationOffsetBinding.Path = new PropertyPath(TableView.CompensationOffsetProperty); compensationOffsetBinding.Source = this.DataGridContext; compensationOffsetBinding.Mode = BindingMode.OneWay; BindingOperations.SetBinding(this, TableViewColumnVirtualizationManagerBase.FirstColumnCompensationOffsetProperty, compensationOffsetBinding); var columnVirtualizationModeBindingBase = new Binding(); columnVirtualizationModeBindingBase.Source = this.DataGridContext; columnVirtualizationModeBindingBase.Path = new PropertyPath(TableView.ColumnVirtualizationModeProperty.Name); columnVirtualizationModeBindingBase.Mode = BindingMode.OneWay; BindingOperations.SetBinding(this, TableViewColumnVirtualizationManagerBase.VirtualizationModeProperty, columnVirtualizationModeBindingBase); }
protected override void Initialize() { base.Initialize(); CollectionChangedEventManager.AddListener(this.DataGridContext.Items.SortDescriptions, this); CollectionChangedEventManager.AddListener(this.DataGridContext.Items.GroupDescriptions, this); ColumnActualWidthEventManager.AddListener(this.DataGridContext.Columns, this); DataGridControlTemplateChangedEventManager.AddListener(this.DataGridContext.DataGridControl, this); this.UpdateScrollViewer(); m_fixedColumnCount = TableView.GetFixedColumnCount(this.DataGridContext); Binding fixedColumnCountBindingBase = new Binding("FixedColumnCount"); fixedColumnCountBindingBase.Source = this.DataGridContext; fixedColumnCountBindingBase.Mode = BindingMode.OneWay; BindingOperations.SetBinding(this, TableViewColumnVirtualizationManager.FixedColumnCountProperty, fixedColumnCountBindingBase); // We must get the value first since it is a bound property m_fixedColumnCount = ( int )this.GetValue(TableViewColumnVirtualizationManager.FixedColumnCountProperty); Binding isColumnVirtualizingEnabledBindingBase = new Binding(); isColumnVirtualizingEnabledBindingBase.Source = this.DataGridContext; isColumnVirtualizingEnabledBindingBase.Path = new PropertyPath(TableView.IsColumnVirtualizationEnabledProperty); isColumnVirtualizingEnabledBindingBase.Mode = BindingMode.OneWay; BindingOperations.SetBinding(this, TableViewColumnVirtualizationManager.IsVirtualizingProperty, isColumnVirtualizingEnabledBindingBase); Binding compensationOffsetBinding = new Binding(); compensationOffsetBinding.Path = new PropertyPath(TableView.CompensationOffsetProperty); compensationOffsetBinding.Source = this.DataGridContext; compensationOffsetBinding.Mode = BindingMode.OneWay; BindingOperations.SetBinding(this, TableViewColumnVirtualizationManager.FirstColumnCompensationOffsetProperty, compensationOffsetBinding); // We must get the value first since it is a bound property this.IsVirtualizingCache = ( bool )this.GetValue(TableViewColumnVirtualizationManager.IsVirtualizingProperty); }