Я сделал следующие изменения / обходные пути, чтобы решить проблему.Возможно, это не идеальное решение, но оно работает для меня.
Я добавил еще два столбца в Grid
, один в начале и один в конце.
<Grid.ColumnDefinitions>
<ColumnDefinition Width="{Binding ElementName=m_DataGrid, Path=RowHeaderWidth}" />
<ColumnDefinition Width="{Binding ElementName=col1, Path=ActualWidth}" />
<ColumnDefinition Width="{Binding ElementName=col2, Path=ActualWidth}" />
<ColumnDefinition Width="{Binding ElementName=col3, Path=ActualWidth}" />
<ColumnDefinition Width="{Binding ElementName=col4, Path=ActualWidth}" />
<ColumnDefinition x:Name="specialCol" />
</Grid.ColumnDefinitions>
Затем яувеличил ColumnSpan
из DataGrid
...Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="6" ....
Затем я добавил эту строку в Constrcutor
из Window
specialCol.Width = new GridLength (2);
и изменил UpdateGrid
метод на этот
void UpdateGrid()
{
ScrollViewer scrollview = FindVisualChild<ScrollViewer>(m_DataGrid);
Visibility verticalVisibility = scrollview.ComputedVerticalScrollBarVisibility;
if (verticalVisibility == System.Windows.Visibility.Visible)
{
specialCol.Width = new GridLength(20);
m_Border.Width = m_DataGrid.ActualWidth - m_DataGrid.RowHeaderWidth - 17;
}
else
{
specialCol.Width = new GridLength(2);
m_Border.Width = m_DataGrid.ActualWidth - m_DataGrid.RowHeaderWidth;
}
}
Я не вижу HorizontalScrollBar
сейчас, пока не потребуется