【发布时间】:2018-03-12 10:01:39
【问题描述】:
我正在使用数据网格并根据行的条件更改行的颜色,并且我正在以编程方式执行此操作。 根据例子 由于我的数据网格绑定到数据表,因此我直接从数据表加载信息
private void UpdateCor () {
gvDados.UpdateLayout ();
for (int i = 0; i <dt.Rows.Count; i ++)
{
var rowContext = (DataGridRow)
gvDados.ItemContainerGenerator.ContainerFromIndex (i);
if (rowContext! = null)
{
if (dt.Rows [i] ["situation"]. ToString (). Equals (1))
rowContext.Background = Brushes.Green;
else
rowContext.Background = Brushes.Red;
}
}
}
有了这个我可以更新我的网格的颜色,即使它不是最好的方法。我的问题是,每当我使用滚动条向下或向上移动时,颜色都会过时。我该如何防止这种情况发生?即使我滚动条,颜色也保持不变?
【问题讨论】:
-
此链接 :datatrigger on enum to change image 可能会对您有所帮助。可能只需要设置背景颜色
-
这是因为虚拟化。您正在尝试做的是一个非常糟糕的主意,可能无法使工作正确。您应该在 XAML 中使用样式和触发器执行此操作。 Stack Overflow 上有很多例子。但是使用谷歌搜索;这里的搜索功能不是很好。
标签: c# wpf datagrid wpfdatagrid