如何根据条件更改datagrid行的前景?

时间:2015-09-09 13:55:45

标签: c# wpf

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改变行前颜色。 我无法自己做到这一点。请帮忙!

2 个答案:

答案 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>