繁体   English   中英

当其DataContext为null时隐藏GroupBox控件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM