DataGrid ヘッダ行で改行 | 野良エンジニアの足跡
2009-04-09 02:35:13

DataGrid ヘッダ行で改行

テーマ:WPF

こんにちは、nagino です。


WPF の DataGrid ですが、横幅を節約したいためにヘッダ行で改行したいときの改行方法です。

野良エンジニアの足跡-DataGrid ヘッダ行で改行


<my:DataGrid ...>
<my:DataGrid.Columns>
...
<my:DataGridTextColumn Header="1行のヘッダ" Binding="{Binding BindingSomething}" />
...
<my:DataGridTextColumn Binding="{Binding BindingSomething}">
<my:DataGridTextColumn.Header>
<TextBlock>1行目<LineBreak />2行目</TextBlock>
</my:DataGridTextColumn.Header>
</my:DataGridTextColumn>
...
<my:DataGridTemplateColumn>
<my:DataGridTemplateColumn.Header>
<TextBlock>テンプレートでも1行目<LineBreak />2行目</TextBlock>
</my:DataGridTemplateColumn.Header>

</my:DataGridTemplateColumn>
...
</my:DataGrid.Columns>
</my:DataGrid>


太字のところがポイントで、Header 属性をタグで指定して、中身に改行を受け付けるコントロールを入れてしまうということです。

列のタイプは DataGridTextColumn でも DataGridTemplateColumn でもその他でも、不問です。

ここでは TextBlock と LineBreak を組み合わせて使っていますが、Wrap(自動改行) するものを使えば列幅に応じて自動的に、といった応用もできるかと思います。(未確認ですが)

AD