private void OnCanUserResizeChanged() { Debug.Assert(Column != null, "column can't be null if we got a notification for this property change"); DataGrid dataGrid = Column.DataGridOwner; if (dataGrid != null) { DataGridColumnHeader nextColumnHeader = dataGrid.ColumnHeaderFromDisplayIndex(DisplayIndex + 1); if (nextColumnHeader != null) { nextColumnHeader.SetLeftGripperVisibility(Column.CanUserResize); } SetRightGripperVisibility(); } }
private void SetNextHeaderLeftGripperVisibility(bool canUserResize) { DataGrid dataGrid = Column.DataGridOwner; int columnCount = dataGrid.Columns.Count; for (int index = DisplayIndex + 1; index < columnCount; index++) { if (dataGrid.ColumnFromDisplayIndex(index).IsVisible) { DataGridColumnHeader nextHeader = dataGrid.ColumnHeaderFromDisplayIndex(index); if (nextHeader != null) { nextHeader.SetLeftGripperVisibility(canUserResize); } break; } } }
/// <summary> /// Property changed call back for DisplayIndex property. /// Sets the visibility of resize grippers accordingly /// </summary> /// <param name="d"></param> /// <param name="e"></param> private static void OnDisplayIndexChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { DataGridColumnHeader header = (DataGridColumnHeader)d; DataGridColumn column = header.Column; if (column != null) { DataGrid dataGrid = column.DataGridOwner; if (dataGrid != null) { header.SetLeftGripperVisibility(); DataGridColumnHeader nextColumnHeader = dataGrid.ColumnHeaderFromDisplayIndex(header.DisplayIndex + 1); if (nextColumnHeader != null) { nextColumnHeader.SetLeftGripperVisibility(column.CanUserResize); } } } }