[英]WPF DataGrid. Change single cell background
我有大約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}}"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.