BoolToVisibility无法使用IsEnabled

时间:2018-03-26 18:55:57

标签: wpf xaml

我使用BooleanToVisibilityConverter进行显示,或根据选中的单选按钮隐藏TimePicker

 <BooleanToVisibilityConverter x:Key="b2v" />

<RadioButton Content="Enable" IsChecked="True" Name="ExportByHour"/>
<RadioButton Content="Hide" />
<materialDesign:TimePicker
            IsEnabled="{Binding IsChecked, ElementName=ExportByHour, Converter={StaticResource b2v}}"
            IsInvalidTextAllowed="False"
            Is24Hours="True"/>

不幸的是我只在Visibility属性上工作,为什么?

1 个答案:

答案 0 :(得分:3)

您误解了BoolToVisibility转换器的用途。它只能与Visibility属性一起使用。

Visibility属性有三种状态:Visible,Collapsed和Hidden。

一个常见的用例是将控件的Visibility属性绑定到视图模型中的boolean属性,以便将true和false转换为visible和collapsed。这是您使用BoolToVisibility转换器的地方。

在其他属性上使用此转换器是没有意义的。 IsEnabled是一个布尔属性,可以直接绑定到视图模型中的布尔属性,而无需使用转换器。