我见过类似this
的帖子然而,他们似乎没有回答我的问题。我在WPF应用程序中有一个XAML数据网格
<DataGrid AutoGenerateColumns="True" Grid.Row="1" AlternationCount="2" HeadersVisibility="Column" Name="dgSkillsMatrix" Margin="0,0,0,1" HorizontalGridLinesBrush="White" VerticalGridLinesBrush="White" AlternatingRowBackground="#FFD0D0EB" RowBackground="#FFECECF5" FontSize="12">
<DataGrid.CellStyle>
<Style TargetType="{x:Type DataGridCell}">
<Style.Triggers>
<DataTrigger Binding="{Binding Value}" Value="1">
<Setter Property="Background" Value="Red"/>
</DataTrigger>
<DataTrigger Binding="{Binding Content}" Value="2">
<Setter Property="Background" Value="Green"/>
</DataTrigger>
<DataTrigger Binding="{Binding Text}" Value="1">
<Setter Property="Background" Value="Black"/>
</DataTrigger>
<DataTrigger Binding="{Binding Name}" Value="Temp">
<Setter Property="Background" Value="Black"/>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.CellStyle>
</DataGrid>
正如您所看到的,我尝试了许多不同的方法来“触发”颜色变化,但没有一个触发。如果我在触发器中放置一个通用设置,它将改变颜色。
我认为问题在于我从动态数据集绑定到数据网格,这些数据可能每天都在变化,所以我使用数据表(下面),因为有不同数量的coulmns意味着我可以不要为每一行使用对象,因为我不知道列/属性的数量何时会改变。
this.dgSkillsMatrix.ItemsSource = (dt as IListSource).GetList();
我只需要知道如何触发触发器来更改属性,具体取决于从数据表创建到listource的单元格的值。