[英]Hiding a GroupBox control when its DataContext is null
我有一个GroupBox
,可以在不同阶段的代码中设置DataContext
。 我正在尝试在其DataContext
为null时隐藏此GroupBox
。 我看着这个SO线程,但在这种情况下可能不适用。 我有一个成员布尔属性SelectedViewVisible
,我尝试在后面的代码中在Window
上调用它,但似乎不会在DataContext
设置为null的情况下调用它。
我在<Window.Resources>
使用以下转换器,并使其在其他控件上成功运行,因此该问题不必与之相关:
<BooleanToVisibilityConverter x:Key="BoolToVis" />
以下是我的GroupBox
的声明:
<GroupBox ...
Visibility="{Binding Path=SelectedViewVisible, Converter={StaticResource BoolToVis}}">
没有Path
也不起作用:
Visibility="{Binding SelectedViewVisible, Converter={StaticResource BoolToVis}}"
也许我只是对静态和成员绑定属性感到困惑?
使用FallbackValue
,如果绑定不产生值,则使用该值:
<GroupBox ...
Visibility="{Binding Path=SelectedViewVisible, Converter={StaticResource BoolToVis}, FallbackValue=Collapsed}">
您可以使用DataTrigger
并检查DataContext的{x:Null}
值来做到这DataTrigger
:
<GroupBox Header="Test">
<GroupBox.Style>
<Style TargetType="GroupBox">
<Setter Property="Visibility" Value="Visible"/>
<Style.Triggers>
<DataTrigger Binding="{Binding}" Value="{x:Null}">
<Setter Property="Visibility" Value="Collapsed"/>
</DataTrigger>
</Style.Triggers>
</Style>
</GroupBox.Style>
</GroupBox>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.