c# - WPF中数据网格列的条件格式
问题描述
我在代码中为数据网格文本列定义了以下样式:
<DataGridTextColumn.CellStyle>
<Style TargetType="DataGridCell" BasedOn="{StaticResource DataGrid_CellStyle_Right}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=OrderByColumn, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}}" Value="2">
<Setter Property="FontSize" Value="{StaticResource LargeFontSize}"/>
<Setter Property="Background" Value="Red" />
</DataTrigger>
</Style.Triggers>
</Style>
</DataGridTextColumn.CellStyle>
为每一列设置了类似的样式,只有 DataTrigger 的值发生变化(第二列为 2,第三列为 3,第四列为 4,依此类推)。
这个想法是我在使用控件时在 XAML 中设置 OrderByColumn 属性,以便我可以有选择地格式化给定的列(属性本身存在于 UserControl 后面的代码中)。列的字体大小受到尊重(资源 LargeFontSize 被发现和使用)但不是背景颜色,无论我做什么,它似乎都保持不变。全部基于的样式此时没有要覆盖的颜色。
我在这里做错了什么?
解决方案
事实证明,我完全忘记的 ControlTemplate 阻止了其他样式按预期呈现。删除它允许显示列颜色。它在此过程中添加了其他格式问题,但至少可以修复这些问题。
无论如何,感谢您的评论和帮助,但似乎这个问题已得到解决。
推荐阅读
- weebly - 如何控制 Google Chrome 标签上的标题?
- excel - 根据条件复制行,并根据条件将这些行粘贴到不同的工作簿中(EXCEL VBA)
- google-chrome - Chromebook 照片访问权限
- sql - 当 2 行在某些列中具有相同的值时,使用其他行 account_no 设置一个新列
- php - 如何按最近的发布日期对 Wordpress 博客类别进行排序?
- angular - patchValue / setValue 对 FormGroup 没有影响
- arrays - 如何声明将与嵌套对象一起使用的模型?
- javascript - 图像未在带有参数的路线上加载,但在没有参数的路线上有效
- html - 具有指向 URL 的响应式图像链接
- apache-kafka - 分区的高水位线实际上是否比分区中最后一条消息的偏移量大一个?