2013-07-25 62 views
2

我的gridview是从SQL中读取的Datatable动态生成的,现在我想设置一个特定的列,比如说“salary”,使其具有红色背景色。我搜索了很多解决方案,但仍然没有线索。如何在WPF gridview中设置列的背景颜色

CmdString = @" select id, firstname, lastname, title, level, salary from emplpyees"; 
      SqlCommand cmd = new SqlCommand(CmdString, con); 
      SqlDataAdapter sda = new SqlDataAdapter(cmd); 
      dt = new DataTable("employee"); 
      sda.Fill(dt); 
      datagridall.ItemsSource = dt.DefaultView; 
+1

你试过使用DataGridTemplateColumn? –

回答

1

您可以创建一个转换器类

public class ErrorConverters : IValueConverter 
    { 
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     SolidColorBrush myBrush = default(SolidColorBrush); 

     if ((bool)value == true) 
     { 
     myBrush = new SolidColorBrush(Colors.Red); 
     } 
     else 
     { 
     myBrush = new SolidColorBrush(Colors.Black); 
     } 

     return myBrush; 
    } 

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     //Throw New NotImplementedException() 
     return null; 
    } 
    } 

然后用一排模板绑定背景色要在数据库中的任何项目将被传递到转换器。

2

试试下面的代码:

gvUserInfo.Columns[0].ItemStyle.BackColor = System.Drawing.Color.Red;

把同样的代码BindGrid功能后gvUserInfo.DataBind();

享受..

+0

gvUserInfo.Columns [0] – Yang

+0

没有名为ItemStyle的属性它应该在那里,这是Grid的属性,您得到了什么样的错误。 –

0

关注这个代码:

protected void gvBandA_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
    // e.Row.Cells[1].ForeColor = System.Drawing.Color.Red; 
     gvBandA.Columns[1].ItemStyle.BackColor = System.Drawing.Color.Yellow; 
     gvBandA.Columns[1].ItemStyle.ForeColor = System.Drawing.Color.Fuchsia; 
    }