本文介绍了在WPF中,当绑定由于空引用而失败时是否使用FallbackValue?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

My view-model exposes a list called MyList that may be empty or null. I have an element that I would like hide based on this state. If MyList is empty or null, then the element should be collapsed. If it has elements then it should be shown.

这是我的 DataTrigger :

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




  • 此 DataTrigger会发生什么当 MyList 为 null 时?

  • 它将使用 FallbackValue 还是失败?

  • 此文件记录在某处吗?

    • What happens to this DataTrigger when MyList is null?
    • Will it use the FallbackValue or will it fail?
    • Is this documented somewhere?
    • 推荐答案

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

      The FallbackValue is used if the binding source path does not resolve, if the converter fails, or if the value is not valid for the property's type.

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

      It will not be used if null is returned, unless null is not valid for the property type. In this case the DataTrigger will not be triggered. You can use TargetNullValue for this case.

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

      这篇关于在WPF中,当绑定由于空引用而失败时是否使用FallbackValue?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-29 11:27