Binding.TargetNullValue 属性

定义

获取或设置当源的 值为 null 时,在目标中使用的值。

public:
 property Platform::Object ^ TargetNullValue { Platform::Object ^ get(); void set(Platform::Object ^ value); };
IInspectable TargetNullValue();

void TargetNullValue(IInspectable value);
public object TargetNullValue { get; set; }
var object = binding.targetNullValue;
binding.targetNullValue = object;
Public Property TargetNullValue As Object
<Binding TargetNullValue="nullValueString" />
- or -
<Binding>
  <Binding.TargetNullValue>
    nullValue
  </Binding.TargetNullValue>
</Binding>

属性值

Object

Platform::Object

IInspectable

当源的 值为 null 时,在绑定目标中使用的值。

注解

TargetNullValue 可用于绑定集合的绑定,而源数据仅对某些项中的缺失信息使用 null 。 它还可用于一般情况,即数据来自数据库,该数据库使用 null 值作为源信息来表示某些内容,例如需要用户提供更多信息且在源中不完整的记录。

绑定中使用 TargetNullValue 行为时,建议采用两种模式:

  • 绑定源提供一个单独的值,该值由其他路径访问,该值充当单一实例值,可以替换来自源中特定数据项的任何 null 值。 例如:
<Button Content="{Binding Path=NextItem, Mode=OneWay, TargetNullValue={Binding Path=NullValue}}"/>

此处, NullValue 是替代值的路径,由另一个 绑定引用。

  • 如果数据源提供 null ,并且其他路径中没有合适的属性用作替换值,请使用资源提供特定于你的应用的值。 例如:
<Button Content="{Binding Path=NextItem, Mode=OneWay, TargetNullValue={StaticResource AppStringForNullInAStringABinding}}"/>

此处, AppStringForNullInAStringABinding 是类似于“ (值不可用) ”的资源字符串,它让用户知道大部分数据中应该存在数据,但此特定项没有来自其源的数据。 使用资源,使值可以本地化。

FallbackValue 是具有类似方案的属性。 区别在于,如果路径根本不会在数据源上求值,或者尝试使用双向绑定在源上设置它时引发异常,则绑定使用 FallbackValue。 如果 Path 确实计算,但找到的值为 null,则使用 TargetNullValue。

在绑定已附加到目标元素和目标属性之后,无法设置 Binding 对象的属性值。 如果尝试此操作,则会收到运行时异常。

适用于

另请参阅