【发布时间】:2017-06-16 05:38:57
【问题描述】:
我有以下代码在运行时填充数据网格的资源。
DataTable dt = new DataTable();
dt.Columns.Add("Date");
dt.Columns.Add("User");
dt.Columns.Add("Type");
foreach (var x in query)
{
var row = dt.NewRow();
decimal total_REC = 0;
decimal total_RET = 0;
row["Date"] = x.CurrentDate.ToString();
row["User"] = x.User;
row["Type"] = x.TranscationType;
dt.Rows.Add(row);
}
最后我将我的数据网格引用到这个数据表
dgv_Transations.DataContext = dt;
在第一个函数中,我可以从 x.TransactionType 中找出需要突出显示的行。所有等于值“A”的类型都将其相应的行以黄色突出显示,因为在背景中将是黄色的。
有没有办法在运行时(来自 c# 代码)以编程方式将整行的背景颜色设置为我想要的。我可以使用 dt.rows.count 作为我的索引,但我想不出一种方法来设置数据网格行背景颜色(总是得到空引用异常)。
在 winforms 中我会转到 datagridview.rows 并继续,但在 WPF 中我没有选项。我尝试了以下方法,但它一直返回 null。
if (dt.Rows.Count > 0)
{
DataGridRow r = dgv_Transations.ItemContainerGenerator.ContainerFromIndex(dt.Rows.Count - 1) as DataGridRow;
r.Background = Brushes.Red;
}
【问题讨论】:
-
This 链接可能对你有用