在 WPF 中,由于空引用导致绑定失败时是否使用 FallbackValue?
In WPF, is the FallbackValue used when the binding fails due to null references?
我的视图模型公开了一个名为 MyList
的列表,该列表可能为空或 null
。我有一个要基于此状态隐藏的元素。如果 MyList
为空或 null
,则应折叠该元素。如果它有元素,那么它应该被显示。
这是我的DataTrigger
:
<DataTrigger Binding="{Binding MyList.Count, FallbackValue=0}" Value="0">
<Setter Property="Visibility" Value="Collapsed"></Setter>
</DataTrigger>
- 当
MyList
是 null
时,这个 DataTrigger
会发生什么?
- 它会使用
FallbackValue
还是会失败?
- 这在某处有记录吗?
如果绑定源路径未解析、转换器失败或值对 属性 的类型无效,则使用 FallbackValue
。
如果返回 null
则不会使用它,除非 null
对 属性 类型无效。在这种情况下 DataTrigger
将不会被触发。对于这种情况,您可以使用 TargetNullValue
。
<DataTrigger Binding="{Binding MyList.Count, FallbackValue=0, TargetNullValue=0}" Value="0">
<Setter Property="Visibility" Value="Collapsed"></Setter>
</DataTrigger>
我的视图模型公开了一个名为 MyList
的列表,该列表可能为空或 null
。我有一个要基于此状态隐藏的元素。如果 MyList
为空或 null
,则应折叠该元素。如果它有元素,那么它应该被显示。
这是我的DataTrigger
:
<DataTrigger Binding="{Binding MyList.Count, FallbackValue=0}" Value="0">
<Setter Property="Visibility" Value="Collapsed"></Setter>
</DataTrigger>
- 当
MyList
是null
时,这个DataTrigger
会发生什么? - 它会使用
FallbackValue
还是会失败? - 这在某处有记录吗?
如果绑定源路径未解析、转换器失败或值对 属性 的类型无效,则使用 FallbackValue
。
如果返回 null
则不会使用它,除非 null
对 属性 类型无效。在这种情况下 DataTrigger
将不会被触发。对于这种情况,您可以使用 TargetNullValue
。
<DataTrigger Binding="{Binding MyList.Count, FallbackValue=0, TargetNullValue=0}" Value="0">
<Setter Property="Visibility" Value="Collapsed"></Setter>
</DataTrigger>