在datagrid中更改行的颜色

时间:2012-10-13 05:49:38

标签: c# wpf

我有一个datagridview,显示一个表“items(Item_desc,quantity,unit_price)”。

我需要更改数量值小于10的行的颜色。

任何人都可以帮我这个吗?

2 个答案:

答案 0 :(得分:0)

使用此代码:

foreach(DataGridViewRow dgvr in dgv.Rows)
{
    int  quantity=int32.Parse(dgv.Cells[10].Value.ToString()) ;
    if( quantity <10)
    {
        .....
    }
}

答案 1 :(得分:0)

在您的班级中创建一个名为IsQuantityLessThanTen的属性,并在触发器中使用该属性(在Style of DataGridRow中)以更改bakground行。

此外,如果您不想创建属性,可以使用ValueConverter。理想情况下,这是应该如何完成的,否则只要Quantity proeprty发生变化以反映在UI上,就必须为您的属性显式提升PropertyChanged

public bool IsQuantityLessThanTen
{
   get
   {
      return Quantity < 10;
   }
}


<DataGrid>
  <DataGrid.Resources>
     <Style TargetType="DataGridRow">
        <ControlTemplate.Triggers>
           <DataTrigger Binding="{Binding IsQuantityLessThanTen}" Value="True">
              <Setter Property="Background" Value="Red" />
           </DataTrigger>
        </ControlTemplate.Triggers>
     </Style>
  </DataGrid.Resources>
......
</DataGrid>