Set the Background of a DataGridRow based on the content of a cell

Phil Gan picture Phil Gan · Jan 27, 2011 · Viewed 8.6k times · Source

Is there a way, using XAML, to dynamically set the background of a row based on the content of one of it's cells?

Thanks,

Phil

Answer

Pavlo Glazkov picture Pavlo Glazkov · Jan 27, 2011

You can define a style for a row and change the color using DataTrigger. Something like this:

<DataGrid>
    <DataGrid.RowStyle>
        <Style TargetType="DataGridRow">
            <Style.Triggers>
                <DataTrigger Binding="{Binding BooleanPropertyOnObjectBoundToRow}" Value="True">
                   <Setter Property="Background" Value="Red"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </DataGrid.RowStyle>
</DataGrid>

Here BooleanPropertyOnObjectBoundToRow is a boolean property on your data object one the cells is bound to.