В DataGrid всегда есть два стиля: ElementStyle
и EditingElementStyle
, ваш стиль должен быть применен как ElementStyle
, тогда вы все еще можете отредактировать флажок, но он не будет виден, когда не в редактировании режим, если ноль. Также должны быть включены три состояния.
<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>