我将DataGrid.IsReadonly
绑定到根据条件更改的属性。 DataGrid
包含DataGridCheckBox
列,我必须设置样式才能将其垂直居中放置在单元格中。
但是,应用样式后,复选框列不会尊重父项的IsReadonly
值。也就是说,无论其值如何,都可以点击并更改checkbox
。我看过很多帖子处理的情况有些类似,但找不到可靠的解决方案。
有人可以让我知道如何设置复选框列的样式,以便它尊重其父网格数据的IsReadonly吗?任何背后的理论也将受到赞赏。
这是我如何应用风格:
<Style x:Key="CenterStyleCB" TargetType="{x:Type CheckBox}">
<Setter Property="HorizontalAlignment" Value="Center" />
<Setter Property="VerticalAlignment" Value="Center" />
</Style>
<DataGridCheckBoxColumn ... ElementStyle="{StaticResource CenterStyleCB}" />
答案 0 :(得分:0)
将以下代码添加到您的样式中:
<Style.Triggers>
<DataTrigger Binding="{Binding Path=Column.IsReadOnly, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type DataGridCell}}}" Value="True">
<Setter Property="IsHitTestVisible" Value="False" />
</DataTrigger>
</Style.Triggers>
如果您的DataGrid始终是ReadOnly,那么我建议您跳过触发器并直接使用setter。