所以我试图将一组对象(IList<>)绑定到WPF数据网格。如果'artist'属性为null或为空,我想将行背景设置为不同的颜色。我正在检查LoadingRow datagrid事件上存储在属性中的值。目前我的实现似乎正确地为所有行设置了空或'null'属性。问题是,在某些情况下,属性不为null或为空的行也是样式。因此,即使行'artist'属性不为null,某些行也会被赋予红色背景。任何人都可以告诉我为什么这可能是??
这是LoadingRow事件:
private void trackGrid_LoadingRow(object sender, DataGridRowEventArgs e)
{
Track t = e.Row.DataContext as Track;
if (String.IsNullOrEmpty(t.Artist))
{
e.Row.Background =
new System.Windows.Media.SolidColorBrush(System.Windows.Media.Color.FromArgb(255, 255, 125, 125));
}
}
答案 0 :(得分:1)
我在这种情况下使用视图模型,它允许直接绑定到行的颜色。
查看此site
上的彩色行示例项目答案 1 :(得分:0)
似乎最简单的方法是让测试在同一行中被多次调用,第二次该值不再为空。我无法猜测为什么会发生,但与此同时,它应该很容易测试:
else
{
e.Row.Background = DependencyProperty.UnsetValue;
}