1
我想向基於DataGrid
屬性的自定義DataGrid
的DataGridCell
添加樣式。例如,我想要一個名爲VisualizeReadOnlyCells的DependencyProperty,如果該屬性設置爲True,那麼我想要使用ReadOnly的DataGridCell
以灰色背景繪製。和其他類似的事情。作爲解決方法,我爲DataGridCell
創建了兩種不同的樣式,並將這些樣式指定爲DataGrid
樣式定義中DataGrid
的CellStyle
屬性。但隨着更多的屬性,這種風格的數量將增加,代碼將是非常難以管理的。基於DataGrid屬性的DataGridCell樣式
我目前的解決辦法是:
<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>
我希望得到的是這樣的:
<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>
那麼簡單嗎?謝謝。 – merlin