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 是替代值的路径,由另一个 Binding 引用。

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

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

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

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

适用于

另请参阅