Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 如果绑定。源不可用,则IsEnabled False_Wpf_Xaml_Data Binding_Isenabled - Fatal编程技术网

Wpf 如果绑定。源不可用,则IsEnabled False

Wpf 如果绑定。源不可用,则IsEnabled False,wpf,xaml,data-binding,isenabled,Wpf,Xaml,Data Binding,Isenabled,如果绑定值为false或null,我希望禁用一个按钮。这是我试过的 <Button Content="Open" IsEnabled="{Binding SearchItem.WFBatchFolderStatus.UserCanOpen, Mode=OneWay, TargetNullValue=false, Converter={StaticResource booleanPassThru}}" /> 我有一个案例,其中SearchItem.WFBatchFolderS

如果绑定值为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为空时,转换器不会启动。如果SearchItem.WFBatchFolderStatus不为null,则转换器将触发。如果值为null,则转换器仅返回false,否则返回值。但转换器从未看到空值。当SearchItem.WFBatchFolderStatus为空时,按钮被启用(不是我想要的)。如果删除TargetValue和/或转换器,则当SearchItem.WFBatchFolderStatus为null时,按钮仍处于启用状态。

如果路径的一部分为null,则绑定失败,将设置为false,如果
WFBatchFolderStatus
为null,则应禁用该按钮。

改用样式如何

<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>