所有,我正在尝试DataGrid
使用 for each 循环遍历 WPF 以更改错误单元格的背景颜色。我检查了很多问题,但我还没有找到足够的答案。到目前为止我所拥有的是
public void RunChecks()
{
const int baseColumnCount = 3;
foreach (DataRowView rv in dataGrid.Items)
{
for (int i = baseColumnCount; i < dataGrid.Columns.Count; i++)
{
if (!CheckForBalancedParentheses(rv.Row[i].ToString()))
{
Color color = (Color)ColorConverter.ConvertFromString("#FF0000");
row.Background = new SolidColorBrush(color); // Problem!
}
}
}
}
问题是,为了更改Background
我的行的颜色,DataGrid
我需要使用DataGridRow
与DataRowView
rv
.
如何DataGridRow
从对象rv
( DataRowView
) 中获取对 的引用?
谢谢你的时间。
编辑。根据下面的建议,我现在有以下样式,它适用于鼠标悬停事件并设置相关单元格的前后字体。但是,对于如何在上面的代码中在运行时将背景色应用于单元格,我真的很迷茫。XML 样式是
<Window.Resources>
<Style TargetType="{x:Type DataGridRow}">
<Style.Triggers>
<Trigger Property="IsMouseOver"
Value="True">
<Setter Property="Background" Value="Red" />
<Setter Property="FontWeight" Value="ExtraBold" />
</Trigger>
</Style.Triggers>
</Style>
</Window.Resources>