私の質問はWPF Grid - How to apply a style for just one column? に似ています GridView
しかし、の内部に適用されますListView
TextBlock
内の特定の列でのみテキストの色を変更するトリガーを適用しようとしていますGridView
。コメントさTHIS
れた行を取り出すと、行の各テキストブロックが影響を受けます。
<ListView>
<ListView.Resources>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="Foreground" Value="White" />
</Style>
</ListView.Resources>
<ListView.View>
<GridView x:Name="MyGridView" ColumnHeaderContainerStyle="{StaticResource GridViewColumnHeaderStyleNew}">
<GridViewColumn Width="90" Header="Name" DisplayMemberBinding="{Binding Name}"/>
<GridViewColumn Width="90" Header="Option" DisplayMemberBinding="{Binding Option}"/>
<GridViewColumn Width="90" Header="Dir" DisplayMemberBinding="{Binding Directory}"/>
<GridViewColumn Width="90" Header="Size" DisplayMemberBinding="{Binding Size}"/>
<GridViewColumn Width="90" Header="Status" >
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Status}">
<TextBlock.Style>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="Foreground" Value="White" />
<Style.Triggers>
<DataTrigger Binding="{Binding Status}" Value="Overheating">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation Storyboard.TargetProperty="Foreground.Color" From="White" To="Red" Duration="0:0:2" AutoReverse="True" RepeatBehavior="Forever" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
その行にどのような変更を加えれば、テキスト ブロックを含む 5番目の列だけがマルチトリガーの影響を受けるようになりますか?
[編集 1]のコードを追加GridView
[EDIT 2]GridViewColumn
独自のスタイルを与えるために最後を変更しました
[編集3]プロパティを削除しDisplayMemberBinding
て追加しましたSetter
...動作します:)。
正解を反映するようにソース コードを更新しました。