大家好,我正在尝试使用for each循环遍历WPF的DataGrid
,以更改错误单元格的背景颜色。我查看了许多相关问题,但仍未找到满意的答案。目前我已经有以下代码:
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!
}
}
}
}
问题在于,为了更改
DataGrid
中一行的 Background
颜色,我需要使用与 DataRowView
rv
相关联的 DataGridRow
对象。
如何从对象rv
(DataRowView
)获取对DataGridRow
的引用?
感谢您的时间。
编辑:根据下面的建议,我现在有了以下工作鼠标悬停事件并设置相关单元格的背景和前景字体的样式。然而,我真的不知道如何在我的上述代码中运行时将背景颜色应用于单元格。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>