次の方法で共有


Binding.ElementName プロパティ

定義

Binding のバインディング ソースとして使用する要素の名前を取得または設定します。

public:
 property Platform::String ^ ElementName { Platform::String ^ get(); void set(Platform::String ^ value); };
winrt::hstring ElementName();

void ElementName(winrt::hstring value);
public string ElementName { get; set; }
var string = binding.elementName;
binding.elementName = string;
Public Property ElementName As String
<Binding ElementName="nameString"/>

プロパティ値

String

Platform::String

winrt::hstring

バインディング ソースとして使用する要素の Name プロパティまたは x:Name 属性 の値。 既定値は空の文字列です。

次のコード例では、 TextBox コントロールと Slider コントロールの間に双方向バインドを確立する方法を示します。 完全なコード一覧については、 XAML データ バインディング サンプルのシナリオ 1 を参照してください。

<Slider x:Name="slider1" Minimum="1" Maximum="100"/>
<TextBox Text="{Binding ElementName=slider1, Path=Value, Mode=TwoWay}"/>

注釈

このプロパティを設定する場合、指定した値は、次のいずれかの場所にある要素を参照する必要があります。

  • 現在の XAML 名前スコープ。
  • バインド ターゲットがデータ テンプレートまたはコントロール テンプレート内にある場合の、テンプレート化された親の XAML 名前スコープ。 この制限のため、 ElementName プロパティを使用して、XAML を使用して作成されない要素にバインドすることはできません。 プログラムによって作成された要素にバインドするには、代わりに Source プロパティを使用します。 SourceRelativeSource、および ElementName は、バインド内で相互に排他的です。 これらの属性の 1 つを設定した場合、バインディング内の他の 2 つ (XAML またはコードを使用) のいずれかを設定すると、例外が発生します。

ElementName 値を使用するバインディングには、ほとんどの場合、参照されているオブジェクトに存在するプロパティに名前を付ける単純な Path が含まれます。 名前付き要素のソース プロパティとターゲットの変換先プロパティの名前が同じで、同じ値の型を使用するのが一般的です。これは、コントロール テンプレート定義で、パーツのプロパティを複合するが、パーツからプロパティを表示する場合が多いシナリオです。 変換元プロパティと変換先プロパティで異なる型が使用されている場合は、型の違いを解決し、変換先に適した値を返すことができる Converter 値を指定します。

XAML 名前スコープの詳細と、それらが XAML から作成されたオブジェクトへのバインドやその他のプログラムによるアクセスにどのように影響するかについては、「 XAML 名前スコープ」を参照してください。

ElementName の値は技術的には任意の文字列にすることができますが、 Name 属性と x:Name 属性 の値は XamlName 文法で有効になるように適用されるため、通常は ElementName 値の文法によってバインドされます。 要素名の有効な内容の詳細については、 x:Name 属性 リファレンスの「XamlName 文法」セクションを参照してください。

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

適用対象

こちらもご覧ください