【问题标题】:How to change background color of row in datagrid in wpf?如何在 wpf 中更改数据网格中行的背景颜色?
【发布时间】:2012-10-31 14:23:39
【问题描述】:

如果行项的值超过某个值,我想更改数据网格中行的背景。

【问题讨论】:

    标签: wpf c#-4.0 wpfdatagrid


    【解决方案1】:

    This 是直接在 XAML 中不使用过程代码的方式,这就是样式的归属。

    【讨论】:

      【解决方案2】:

      您可以在LoadingRow 事件中执行此操作,如下所示:

      private void dataGridLoadingRow(object sender, DataGridRowEventArgs e)
      {
          YourObject rowContext = e.Row.DataContext as YourObject;
      
          if (rowContext != null)
          {
              if (rowContext.YourValue > _someValue)
                  e.Row.Background = new SolidColorBrush(Colors.Green);
          }
      }
      

      【讨论】:

      • 这不是一个好的解决方案。它通过在视图后面的代码中引入应用程序逻辑来破坏 MVVM。
      • 是的,这不是解决这个问题的最佳方法,因为 mvvm,最初的提问者应该使用触发器,但我喜欢有不同的实现来完成。
      • 低效的实现对完整性没有任何贡献。如果他购买了第三方控制套件(例如 DX 或 Infragistics 或 Telerik)并想用新的 WPF DataGrid 替换标准 WPF DataGrid,请考虑所需的重构工作。
      猜你喜欢
      • 2011-11-04
      • 1970-01-01
      • 1970-01-01
      • 2016-09-19
      • 2015-10-11
      • 1970-01-01
      • 2018-02-02
      • 1970-01-01
      • 2011-01-24
      相关资源
      最近更新 更多