5

私は DataGrid を持っていますが、これは DataGrid に関する限り非常に単純です。何らかの理由で、以下のスクリーンショットに示すように、ヘッダーが残りのデータと整列していません。

ここに画像の説明を入力

インターネットで検索しましたが、解決策が見つからないようです。ここに私の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>

Combobox セルの 1 つをクリックすると、ヘッダーが適切に整列することにも言及する価値があります。

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 の Property を使用して、Row の特定の css クラスを定義することもできます

HeaderStyle-HorizontalAlign=""
HeaderStyle-CssClass=""
于 2012-10-30T13:09:07.833 に答える