绑定到布尔值的可见性的 TargetNullValue

Posted

技术标签:

【中文标题】绑定到布尔值的可见性的 TargetNullValue【英文标题】:TargetNullValue for Visibility that's bound to a boolean 【发布时间】:2013-01-15 22:57:33 【问题描述】:

我有一个Grid,其Visibility 属性使用Converter 绑定到某个模型的布尔属性:

<Grid Visibility="Binding ElementName=MyTreeView, Path=SelectedItem.MyBoolProperty, Converter=StaticResource boolToVisConverter">
    <!-- child elements -->
</Grid>

当我的TreeView 中的一个元素被选中时效果很好,但如果没有选择任何内容或TreeView 为空,则默认为可见。我需要默认隐藏它。我试过使用TargetNullValue=Hidden,但它不起作用。我想我只是不明白TargetNullValue 属性在这种情况下应该如何工作。

有人知道如何获得我正在寻找的功能吗?

【问题讨论】:

【参考方案1】:

我花了几个小时试图弄清楚这一点。然后,当然,在我发布问题后,我在GridBinding 属性上使用FallbackValue=Hidden 让它工作。

【讨论】:

谢谢!这是一个救生员。我按照***.com/questions/5474586/… 的建议尝试了 TargetNullValue 和 Triggers,但它们不起作用。任何想法为什么这有效而不是其他解决方案? @Dave 那是因为 TargetNullValue 仅适用于绑定目标属性(绑定路径中的最后一个元素)。所以 bool 类型的 target 属性上的 TargetNullValue 绝对没有意义,因为 bool 无论如何都不能为 null。

以上是关于绑定到布尔值的可见性的 TargetNullValue的主要内容,如果未能解决你的问题,请参考以下文章

基于布尔值的 ListView 项目可见性

是否可以对布尔 ViewModel 属性的否定(“!”)可见的数据绑定?

将可见性属性(视图)与布尔属性(ViewModel)绑定

将 XAML 中的可见性绑定到可见性属性

绑定布尔值的 bind_param 问题

删除具有绑定布尔值的列表项 - SwiftUI