私の C#/WPF アプリケーションでは、テキストの折り返しとツールチップの両方を使用してDatagrid
、いくつかの列があります。DataGridTextColumn
私はこのように各列を書くことができます(そしてこれはうまくいきます):
<DataGridTextColumn Header="Name" Binding="{Binding Name}">
<DataGridTextColumn.ElementStyle>
<Style>
<Setter Property="TextBlock.TextWrapping" Value="Wrap" />
</Style>
</DataGridTextColumn.ElementStyle>
<DataGridTextColumn.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="ToolTip" Value="Some tooltip text" />
</Style>
</DataGridTextColumn.CellStyle>
</DataGridTextColumn>
しかし、ツールヒントのテキストが列ごとに異なることを知っているので、折り返しとツールヒントのテキストの両方を設定できる共通のスタイルを定義したいと思います。目的は、コードの冗長性を回避し、より明確にすることです。
これまでのところ、私のスタイルは次のとおりです。
<Window.Resources>
<Style x:Key="WrapStyle" TargetType="{x:Type DataGridCell}">
<Style.Setters>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DataGridCell}">
<TextBox Text="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Content.Text}" TextWrapping="Wrap">
<TextBox.ToolTip>
<ToolTip>
<ToolTip.Content>
<TextBlock Text="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Tooltip}" />
</ToolTip.Content>
</ToolTip>
</TextBox.ToolTip>
</TextBox>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style.Setters>
</Style>
</Window.Resources>
そして私のコラム:
<DataGridTextColumn Header="Name" Binding="{Binding Name}" CellStyle="{StaticResource WrapStyle}" />
問題は、スタイルに渡すツールチップを指定できないことです。DataGridTextColumn.CellStyle
各列に5行を書かずにそれを行う方法はありますか? ありがとう