[英]WPF - How do I style a row based on a binding property value?
所以我试图将对象的集合(IList <>)绑定到WPF数据网格。 如果'artist'属性为null或为空,我想使行背景具有不同的颜色。 我正在检查存储在LoadingRow datagrid事件上的属性的值。 目前,我的实现似乎为所有行正确设置了具有空或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));
}
}
我在这种情况下使用视图模型,它允许直接绑定到行的颜色。
在此站点上查看彩色行示例项目
似乎最简单的方法是对同一行多次调用测试,而第二次该值不再为空。 我不能猜测,为什么会发生,但在此之前,它应该很容易与测试:
else
{
e.Row.Background = DependencyProperty.UnsetValue;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.