次の方法で共有


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 値を使用して何かを示すデータベースからデータが取得される一般的なケース (ユーザーからの詳細情報を必要とし、ソースで完全ではないレコードなど) にも使用できます。

Binding で TargetNullValue 動作を使用するには、次の 2 つの推奨パターンがあります。

  • バインディング ソースは、別のパスによってアクセスされる個別の値を提供します。これは、ソース内の特定のデータ項目から取得される 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 は、同様のシナリオを持つ同様のプロパティです。 違いは、Path と Source がデータ ソースでまったく評価されない場合、または双方向バインディングを使用してソースに設定しようとすると例外がスローされる場合に、バインディングで FallbackValue が使用される点です。 Path が評価される場合は TargetNullValue を使用しますが、見つかった値は null です

Binding オブジェクトのプロパティ値は、そのバインドがターゲット要素とターゲット プロパティにアタッチされた後は設定できません。 これを試みると、実行時例外が発生します。

適用対象

こちらもご覧ください