如果绑定值为false或null,则要禁用我想要禁用的按钮。这是我试过的。
<Button Content="Open" IsEnabled="{Binding SearchItem.WFBatchFolderStatus.UserCanOpen, Mode=OneWay, TargetNullValue=false, Converter={StaticResource booleanPassThru}}" />
我有一个案例,其中SearchItem.WFBatchFolderStatus可以为null(并且出于有效的商业原因)。如果SearchItem.WFBatchFolderStatus为null,那么我想要禁用该按钮。当SearchItem.WFBatchFolderStatus为null时,转换器不会触发。如果SearchItem.WFBatchFolderStatus不为null,则转换器将触发。如果值为null,则转换器仅返回false,否则返回值。但转换器永远不会看到空值。当SearchItem.WFBatchFolderStatus为null时,按钮IS启用(不是我想要的)。如果我删除了TargetValue和/或Converter,那么当SearchItem.WFBatchFolderStatus为null时,按钮仍然处于启用状态。
答案 0 :(得分:7)
如果路径的一部分为空,则绑定失败,将Binding.FallbackValue
设置为false,如果WFBatchFolderStatus
为空,则应禁用它。
答案 1 :(得分:4)
如何使用样式呢?
<Page.Resources>
<Style x:Key="SomeStyle" TargetType="{x:Type Button}">
<Style.Triggers>
<DataTrigger Binding="{Binding SearchItem.WFBatchFolderStatus.UserCanOpen}" Value="{x:Null}">
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Page.Resources>
<Grid>
<Button Content="Open" Style="{StaticResource SomeStyle}" />
</Grid>