我有以下问题,
我有一系列可由用户选择的项目。
例如,我有一个项目列表 A ,可以选择此列表中的项目,并通过 SelectedA 属性提供。
每个 A 包含 B 项目列表。每个都可以选择,因此 A 提供属性 SelectedB 。
项 B 的属性为布尔值 C
现在我可以通过做这样的事情直接绑定到 C 。
Visibility="{Binding SelectedA.SelectedB.C, Converter={StaticResource BooleanToVisibilityConverter}}"
现在您可以看到我使用转换器来设置可见性。但问题是,只要没有选择 A 和 B ,就不会使用转换器。因此Visibiltiy仍然可见。
为了防止我被迫将项目包装在另一个GUI项目中,以便我可以检查所选项目的空值。
所以我必须在这种情况下为 SelectedA 包装元素以检查它是否为null并且具有boolean转换器的可见性,然后是 SelectedB 看到的也是空的。只有这样我才能使用实际的元素和绑定。
无论如何强制转换器以空值触发,因此可见性设置正确吗?
答案 0 :(得分:1)
当绑定值为TargetNullValue
时,您可以在绑定上使用null
来提供默认值。绑定失败时,您可以使用FallbackValue
提供值。根据您的要求,将其中一项或两项设置为Visibility.Collapsed
或Visibility.Hidden
。