WPF DataGrid。 更改单细胞背景

我有大约66列和4000行的数据表

每一行都有一些基于条件的着色

我是WPF的新手实际上我已经实现了一些基于条件的着色datagridview中的行但WPF作为组件DATA GRID

如何根据细胞价值实现基于细胞的着色? 在WPF中

早些时候我在Win表单中做了类似的事情

public DataGridView colorGridview(DataGridView G) { string[] cellsrequired = {"Colnames1",""colname2}; foreach (DataGridViewRow item in G.Rows) { foreach (DataGridViewCell cell in item.Cells) { if (cellsrequired.Contains(cell.OwningColumn.HeaderText)) { string str = cell.FormattedValue.ToString().Trim(); // n / a if (str != "N/A")// Or your condition { if (str == "SKIP") { cell.Style.BackColor = Color.Orange; } else if (str == "FAIL") { cell.Style.BackColor = Color.Red; } else if (str == "INC") { cell.Style.BackColor = Color.Yellow; } else { cell.Style.BackColor = Color.SpringGreen; } } } } } foreach (DataGridViewRow item in G.Rows) { if (object.Equals(item.Cells[35].Value, "FAIL")) { var myparts = item.Cells[0].Value.ToString(); String[] CondtionsonCA = Getcondtion(myparts); foreach (DataGridViewCell cell2 in item.Cells) { if (CondtionsonCA.Contains(cell2.OwningColumn.HeaderText)) { string str = cell2.FormattedValue.ToString().Trim(); cell2.Style.BackColor = checkForColour(str); } } } } return G; } 

您可以使用实现IValueConverter接口的值转换器 。 我链接的文章很好地描述了这个过程,但基本上它是一个小类,它接受任何输入值,检查它,然后返回你想要的。 例如,如果单元格值= Good,则返回绿色,如果单元格值= bad,则返回红色。 然后,您需要将单元格样式属性(例如背景)绑定到单元格值,并将转换器设置为该绑定的参数。

 background = "{Binding ElementName=txtValue, Path=Text, Converter={StaticResource CellValueToColorConverter}}"