在WPF中,由于空引用而导致绑定失败时使用的FallbackValue是什么?

sdg*_*sdh 13 c# data-binding wpf datatrigger

我的视图模型公开了一个名为MyList空的列表null.我有一个基于这个状态隐藏的元素.如果MyList为空或null,则该元素应折叠.如果它有元素则应显示.

这是我的DataTrigger:

<DataTrigger Binding="{Binding MyList.Count, FallbackValue=0}" Value="0">
    <Setter Property="Visibility" Value="Collapsed"></Setter>
</DataTrigger>
Run Code Online (Sandbox Code Playgroud)
  • 恰巧这什么DataTrigger时候MyListnull
  • 它会使用它FallbackValue还是会失败?
  • 这是在某处记录的吗?

Nat*_*ner 18

FallbackValue被使用,如果绑定的源路径不能解决,如果转换失败,或者如果值是无效的属性的类型.

如果null返回,null则不会使用它,除非对属性类型无效.在这种情况下,DataTrigger不会被触发.您可以使用TargetNullValue这种情况.

<DataTrigger Binding="{Binding MyList.Count, FallbackValue=0, TargetNullValue=0}" Value="0">
    <Setter Property="Visibility" Value="Collapsed"></Setter>
</DataTrigger>
Run Code Online (Sandbox Code Playgroud)