1
我有一个DataGrid的DataGridCheckBoxColumn绑定到可为空的布尔值。如果值为null,我想完全隐藏复选框。我尝试了以下触发器,但它不起作用:WPF DataGridCheckBoxColumn:如果绑定值为null,如何隐藏复选框?
<Style TargetType="CheckBox">
<Style.Triggers>
<Trigger Property="IsChecked" Value="{x:Null}">
<Setter Property="Visibility" Value="Hidden"/>
</Trigger>
</Style.Triggers>
</Style>
是否有可能?非常感谢您的帮助!
+1。这是正确的答案,但是如果你不添加IsThreeState =“True”,假设用户希望只使用网格中没有绑定为null的复选框,它会更好。 – RichardOD 2011-05-21 18:20:49
它对我有部分作用。如果为null,它将隐藏复选框。但是,我也观察到以下问题:1.我的列只能读取。但是,在应用此样式之后,该复选框不再是只读的。实际上,我的绑定属性只是一个getter,所以我不确定checkable状态是如何绑定的。 2.该复选框现在左对齐。它曾经居中。 3.我怎样才能使这个可重用的风格?我有很多这样的专栏,我不想为每一栏重复同样的事情。 4.我没有看到设置或不设置IsThreeState = True的任何区别。 – newman 2011-05-21 19:14:51
您可以将样式定义为资源('DataGrid.Resources'),然后引用它:' ',其中'myStyle'是分配给'x:Key'样式。还要在绑定中设置Mode = OneWay,它不应该是可编辑的(我甚至有一个异常,当我移除setter时,这个异常迫使我这样做)。 –
2011-05-21 19:17:55