我有一个DataGrid,其DataGridCheckBoxColumn绑定到可以为空的bool。如果值为null,我想完全隐藏该复选框。我尝试了以下触发器,但它不起作用:
<Style TargetType="CheckBox">
<Style.Triggers>
<Trigger Property="IsChecked" Value="{x:Null}">
<Setter Property="Visibility" Value="Hidden"/>
</Trigger>
</Style.Triggers>
</Style>
有可能吗?非常感谢您的帮助!
答案 0 :(得分:3)
DataGrid中总有两种样式,ElementStyle
和EditingElementStyle
,您的样式应该应用为ElementStyle
,然后您仍然可以编辑复选框但不会如果不为编辑模式,则显示为null。此外,还需要启用这三种状态。
<DataGridCheckBoxColumn Binding="{Binding MyNullableBool}" IsThreeState="True">
<DataGridCheckBoxColumn.ElementStyle>
<Style TargetType="CheckBox">
<Style.Triggers>
<Trigger Property="IsChecked" Value="{x:Null}">
<Setter Property="Visibility" Value="Hidden"/>
</Trigger>
</Style.Triggers>
</Style>
</DataGridCheckBoxColumn.ElementStyle>
</DataGridCheckBoxColumn>