我想为自定义DataGridCell
的{{1}}添加一个样式,该样式基于DataGrid
的属性。例如,我想要一个名为VisualizeReadOnlyCells的DependencyProperty,如果该属性设置为True,我希望ReadOnly的DataGrid
以灰色背景绘制。和其他类似的事情。作为一种解决方法,我为DataGridCell
创建了两种不同的样式,并将这些样式分配给DataGridCell
样式定义中CellStyle
的{{1}}属性。但是随着更多属性,这些样式的数量将增加,代码将非常难以管理。
我目前的解决方案是:
DataGrid
我想得到的是这样的:
DataGrid
答案 0 :(得分:0)
如果我正确理解您的问题,您可以使用MultiDataTrigger
并绑定到DataGridCell
和父DataGrid
:
<Style x:Key="DataGridCellUniversalStyle" TargetType="DataGridCell">
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding IsReadOnly, RelativeSource={RelativeSource Self}}" Value="True"/>
<Condition Binding="{Binding VisualizeReadOnlyCells, RelativeSource={RelativeSource AncestorType=local:MyCustomDataGrid}}" Value="True"/>
</MultiDataTrigger.Conditions>
<MultiDataTrigger.Setters>
<Setter Property="Background" Value="Gray"/>
</MultiDataTrigger.Setters>
</MultiDataTrigger>
</Style.Triggers>
</Style>