Comment définir la grille de données de la ligne de Fond, basé sur la valeur d'une propriété à l'aide de liaisons de données

Dans mon code XAML, je veux mettre le Background couleur de chaque ligne, basé sur la valeur de l'objet dans une ligne spécifique. J'ai un ObservableCollection de z, et chaque de la z a une propriété appelée State. J'ai commencé avec quelque chose comme ça dans mon DataGrid:

<DataGrid.RowStyle>
    <Style TargetType="DataGridRow">
        <Setter Property="Background" 
                Value="{Binding z.StateId, Converter={StaticResource StateIdToColorConverter}}"/>
     </Style>
</DataGrid.RowStyle>

C'est une mauvaise approche, car x n'est pas une propriété dans ma classe ViewModel.

Dans ma classe ViewModel j'ai un ObservableCollection<z> qui est le ItemsSource de cette DataGrid, et un SelectedItem de type z.

J'ai pu lier la couleur de SelectedItem, mais cela ne fera que changer une ligne dans le DataGrid.

Comment puis-je, basée sur un changement de propriété de cette lignes backgroundcolor?