很抱歉,标题平庸,我不确定最好的写法。基本上,我有一个名为ItemDisplay的类的ObservableCollection。 ItemDisplay具有一个称为“状态”的属性。我已经设置XAML来设置DataGrid中行的背景,以根据每个ItemDisplay的State属性的值进行更改。这是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>
如果在设置DataGrid的ItemSource之前设置ObservableCollection中各个项目的状态,则效果很好,但是我希望行的背景随着ObservableCollection中对象的状态变化而改变。到目前为止,我一直在做的工作是将ItemsSource设置为null,然后再次将其设置为ObservableCollection,我想这是可行的,但绝对不是理想的解决方案。