2015-10-29 15 views
5

我的视图模型公开了一个名为MyList的列表,该列表可能为空或null。基于这种状态我有一个我想要隐藏的元素。如果MyList为空或null,则该元素应该折叠。如果它有元素,那么它应该被显示。在WPF中,由于空引用导致绑定失败时使用的是FallbackValue吗?

这里是我的DataTrigger

<DataTrigger Binding="{Binding MyList.Count, FallbackValue=0}" Value="0"> 
    <Setter Property="Visibility" Value="Collapsed"></Setter> 
</DataTrigger> 
  • 发生这种DataTrigger什么时候MyListnull
  • 它会使用FallbackValue还是会失败?
  • 这是否记录在某处?

回答

6

如果绑定源路径未解析,转换器失败,或者该值对该属性的类型无效,则使用FallbackValue。

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

<DataTrigger Binding="{Binding MyList.Count, FallbackValue=0, TargetNullValue=0}" Value="0"> 
    <Setter Property="Visibility" Value="Collapsed"></Setter> 
</DataTrigger> 
相关问题