所有,我试图循环WPF DataGrid
使用每个循环来改变错误的单元格的背景颜色。我检查了很多问题,但我还没有找到足够的答案。我至今是通过WPF DataGrid循环使用foreach
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
我需要与DataRowView
rv
ascociated的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>
谢谢你的时间。我会接受你的建议并开始阅读。我也一直在尝试颜色和整个专栏,再次没有运气。我问另一个问题[这里](http://stackoverflow.com/questions/15644105/change-the-background-color-of-entire-column-of-wpf-datagrid-at-runtime),如果你可以被遗忘并希望代表。再次感谢... – MoonKnight 2013-03-27 11:18:46
@Killercam:这个想法对于行和列是一样的。如果UI对象提供了一些可以通过直接访问或通过绑定进行更改的属性(本例中为颜色),则可以使用您的模型视图对象中的绑定。 – Tigran 2013-03-27 11:25:54
谢谢。阅读了关于样式,触发器等书的章节,现在我已经在鼠标悬停事件上获得了行更改颜色。但是,我失去了如何在运行时使用这些样式将单元格/行更改为代码所需的颜色。如果你可以在这里提供任何帮助,将不胜感激...我编辑了这个问题来展示我的风格。 – MoonKnight 2013-03-27 12:29:47