5

我有一个 DataGrid,就 DataGrids 而言它非常简单。由于某种原因,标题与其余数据未对齐,如下面的屏幕截图所示:

在此处输入图像描述

我已经搜索了互联网,但似乎找不到解决方案。这是我的 DataGrid 代码:

Grid>
        <DataGrid Name="dgAttributes" 
                  ItemsSource="{Binding itemsSource}" 
                  AutoGenerateColumns="False" 
                  CanUserAddRows="False" 
                  CanUserDeleteRows="False" 
                  CanUserReorderColumns="False" 
                  CanUserResizeColumns="False" 
                  CanUserResizeRows="False"
                  CanUserSortColumns="False"
                  >
            <DataGrid.Columns>
                <DataGridTextColumn Width="Auto" IsReadOnly="True" Binding="{Binding Field}" Header="Fields"/>
                <DataGridComboBoxColumn  Width="95" IsReadOnly="False" Header="Order" ItemsSource="{Binding Source={StaticResource SortOrderProvider}}" SelectedItemBinding="{Binding SortBy, Mode=TwoWay}"/>
                <DataGridCheckBoxColumn Width="Auto" IsReadOnly="False" Binding="{Binding GroupBy}" Header="Group By"/>
                <DataGridComboBoxColumn Width="85" IsReadOnly="False" Header="Aggregate" ItemsSource="{Binding Source={StaticResource AggregateProvider}}" SelectedItemBinding="{Binding AggregateBy, Mode=TwoWay}"/>
                <DataGridTextColumn Width="Auto" IsReadOnly="False" Binding="{Binding Having}" Header="Having"/>
                <DataGridTextColumn Width="Auto" IsReadOnly="False" Binding="{Binding DisplayOrder}" Header="Display Order"/>
            </DataGrid.Columns>
        </DataGrid>
    </Grid>

值得一提的是,当我单击其中一个组合框单元格时,标题会正确对齐。

4

4 回答 4

3

你肯定有一些风格或隐藏数据网格左上角 Select All按钮的东西。因此,列向左移动了一点。

使用此线程来获取该按钮DataGrid.OnLoad并检查其Visibility属性。

全选按钮 WPF DataGrid

如果其折叠/隐藏,请将可见性设置为Visbility.Visible。或检查其Width为零并设置适当Width的 .

于 2012-10-30T13:49:45.240 回答
2

最后我打败了这个问题在这里找到解决方案

抱歉,我没有注意到您没有覆盖 DataGrid 控件模板。恐怕,您必须定义一个控件模板才能纠正 DataGrid 行为。

PS:我有 .NET Framework 4.0

于 2014-03-23T05:54:16.383 回答
1

我发现只需将HeadersVisiblity设置为“Column”就可以了 - 请参阅下面的 XAML。
比掌握它更容易SelectAll Button...

<DataGrid x:Name="myGrid" HeadersVisibility="Column">
于 2012-11-08T11:22:30.437 回答
0

您可以使用 DataGrid Like 的属性,还可以为 Row 定义特定的 css 类

HeaderStyle-HorizontalAlign=""
HeaderStyle-CssClass=""
于 2012-10-30T13:09:07.833 回答