Hy,我是WPF编程的新手,我有一个小问题,我不能自己解决。
我创建了一个对象列表:
List<TestInfo> Info = new List<TestInfo>();
TestInfo:
public class TestInfo
{
public string Serial { get; set; }
public string Test { get; set; }
public string Result { get; set; }
}
之后我将其分组:
ListCollectionView groupedInfo = new ListCollectionView(Info);
groupedInfo.GroupDescriptions.Add(new PropertyGroupDescription("Serial"));
然后将其绑定到datagrid:
dataGrid.ItemsSource = groupedInfo;
现在,我的问题是,在这种情况下,我如何根据条件更改datagrid的行前颜色?类似的东西:if groupedInfo.Result == F改变行前颜色。 我无法自己做到这一点。请帮忙!
答案 0 :(得分:0)
以下是基于条件的示例:
<DataGrid>
<DataGrid.CellStyle>
<Style x:Key="DGCell" TargetType="{x:Type DGCell}" >
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Foreground" Value="Gray"/>
</Trigger>
</Style.Triggers>
</Style>
</DataGrid.CellStyle>
</DataGrid>
要在您执行的列上使用它:
<DataGrid>
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Name}">
<DataGridTextColumn.CellStyle>
<Style TargetType="DGCell">
答案 1 :(得分:0)
感谢大家的帮助。我终于解决了它,并了解了什么触发器[:D]。我的解决方案是使用DataTrigger。代码如下:
<Style TargetType="DataGridCell">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=Result}" Value="P">
<Setter Property="Foreground" Value="Green" />
</DataTrigger>
</Style.Triggers>
</Style>