Je souhaite ajouter un style au DataGridCell
d'un DataGrid
personnalisé qui est basé sur la propriété de ce DataGrid
. Par exemple je veux avoir un DependencyProperty nommé VisualizeReadOnlyCells et si cette propriété est définie sur True, je veux le DataGridCell
qui est ReadOnly est dessiné avec un fond gris. Et d'autres choses similaires. Comme une solution de contournement j'ai créé deux styles différents pour le DataGridCell
et j'assigne ces styles à la propriété CellStyle
de la DataGrid
dans la définition de style DataGrid
. Mais avec plus de propriétés, le nombre de ces styles va augmenter et le code sera très ingérable.Style DataGridCell basé sur la propriété DataGrid
Ma solution actuelle est:
<Style x:Key="DataGridCellNoVisualize" TargetType="DataGridCell">
- style definition
</Style>
<Style x:Key="DataGridCellVisualize" TargetType="DataGridCell">
<Style.Triggers>
<Trigger Property="IsReadOnly" Value="True">
<Setter Property="Background" Value="Gray"/>
</Trigger>
</Style.Triggers>
</Style>
<Style x:Key="DataGridStyle" TargetType="MyCustomDataGrid">
<Setter Property="CellStyle" Value="{StaticResource DataGridCellNoVisualize"/>
<Style.Triggers>
<Trigger Property="VisualizeReadOnlyCells" Value="True">
<Setter Property="CellStyle" Value="{Static Resource DataGridCellVisualize"/>
</Trigger>
</Style.Triggers>
</Style>
Ce que je voudrais faire est quelque chose comme ceci:
<Style x:Key="DataGridCellUniversalStyle" TargetType="DataGridCell">
- style definition
<Style.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsReadOnly" Value="True"/>
<Condition Property="MyParentDataGrid.VisualizeReadOnlyCells" Value="True"/>
</MultiTrigger.Conditions>
<MultiTrigger.Setters>
<Setter Property="Background" Value="Gray"/>
</MultiTrigger.Setters>
</MultiTrigger>
</Style.Triggers>
</Style>
si simple? Merci. – merlin