繁体   English   中英

WPF-如何根据绑定属性值设置行样式?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM