извините за посредственное название, я не был уверен, что лучший способ это произнести.В основном у меня есть ObservableCollection класса с именем ItemDisplay.ItemDisplay имеет свойство под названием «State».Я настроил XAML, чтобы задать изменение фона строк в DataGrid в зависимости от значения свойства State каждого ItemDisplay.Вот XAML:
<DataGrid x:Name="scheduledGrid" Margin="0,0,0.6,4.4" SelectionMode="Single" IsReadOnly="False" SelectionChanged="ScheduledGrid_SelectionChanged">
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Style.Triggers>
<DataTrigger Binding="{Binding State}" Value="Selected">
<Setter Property="Background" Value="Purple"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding State}" Value="Priced">
<Setter Property="Background" Value="Green"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding State}" Value="Failed">
<Setter Property="Background" Value="Red"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
</DataGrid>
Это прекрасно работает, если состояния различных элементов в ObservableCollection установлены до того, как установлен ItemSource для DataGrid, однако я бы хотел, чтобы фон для строк изменялся какСостояние объектов в ObservableCollection изменяется.До этого момента я устанавливал для ItemsSource значение null, а затем снова устанавливаю для него ObservableCollection, что, я думаю, работает, но определенно не является идеальным решением.