【问题标题】:WPF - How do I style a row based on a binding property value?WPF - 如何根据绑定属性值设置行样式?
【发布时间】:2010-06-06 20:07:22
【问题描述】:

所以我试图将对象集合 (IList) 绑定到 WPF 数据网格。如果“艺术家”属性为空或为空,我想将行背景设置为不同的颜色。我正在检查 LoadingRow 数据网格事件的属性中存储的值。目前,我的实现似乎正确地设置了具有空或空“艺术家”属性的所有行的样式。问题在于,在某些情况下,也会对属性不为空或为空的行进行样式设置。因此,即使行的“艺术家”属性不为空,某些行也会被赋予红色背景。谁能告诉我为什么会这样??

这里是 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));
        }
    }

【问题讨论】:

    标签: c# wpf datagrid wpfdatagrid


    【解决方案1】:

    我在这种情况下使用视图模型,它允许直接绑定到行的颜色。

    查看site上的彩色行示例项目

    【讨论】:

      【解决方案2】:

      似乎最简单的方法是对同一行多次调用测试,并且第二次该值不再为空。我无法猜测为什么会发生 那个,但与此同时,它应该很容易测试:

      else
      {
          e.Row.Background = DependencyProperty.UnsetValue;
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-04-03
        • 2014-08-15
        • 1970-01-01
        • 2017-08-17
        • 1970-01-01
        • 2013-09-29
        • 1970-01-01
        相关资源
        最近更新 更多