How can I change the font color in a cell of a WPF ListView depending on the value of the cell?

c#, listview, wpf

Solution

You need to use a `DataTemplate` to show the `fieldA` value and add a trigger changing the `Foreground` property for a given value.

See also Data Templating Overview on MSDN.

<GridViewColumn Header="Field A">
    <GridViewColumn.CellTemplate>
        <DataTemplate>
            <TextBlock x:Name="Txt" Text="{Binding fieldA}" />
            <DataTemplate.Triggers>
                <DataTrigger Binding="{Binding fieldA}" Value="apples">
                    <Setter TargetName="Txt" Property="Foreground" Value="Red" />
                </DataTrigger>
            </DataTemplate.Triggers>
        </DataTemplate>
    </GridViewColumn.CellTemplate>
</GridViewColumn>

Problem

``` <ListView ItemsSource="{Binding}" Name="myView"> <ListView.View> <GridView> <GridViewColumn DisplayMemberBinding="{Binding fieldA}" Header="Field A" /> <GridViewColumn DisplayMemberBinding="{Binding fieldB}" Header="Field B" /> </GridView> </ListView.View> </ListView> ``` I would like to know how to format my list view so that if object.fieldA == "apples", the font is red in the fieldA cell. Thanks boffins.

Original source