Binding.ElementName プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
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"/>
プロパティ値
バインディング ソースとして使用する要素の 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 プロパティを使用します。 Source、 RelativeSource、および ElementName は、バインディング内で相互に排他的です。 これらの属性の 1 つを設定した場合、バインディングで他の 2 つのいずれかを (XAML またはコードを使用して) 設定すると、例外が発生します。
ElementName 値を使用するバインディングには、ほとんどの場合、参照されているオブジェクトに存在するプロパティに名前を付けている単純な Path が含まれます。 名前付き要素のソース プロパティとターゲットの変換先プロパティが同じ名前を持ち、同じ値の型を使用するのが一般的です。これは、コントロール テンプレート定義でコントロール パーツを複合し、パーツのプロパティを表面化する場合によく見られるシナリオです。 ソースプロパティと変換先プロパティで異なる型が使用されている場合は、型の違いを解決し、変換先に適した値を返すことができる Converter 値を指定します。
XAML 名前スコープの詳細と、それらが XAML から作成されたオブジェクトへのバインドやその他のプログラムによるアクセスにどのように影響するかについては、 XAML 名前スコープに関するページを参照してください。
ElementName の値は技術的には任意の文字列にすることができますが、 Name 属性と x:Name 属性 の値は XamlName 文法で有効になるように適用されるため、通常は ElementName 値の文法にもバインドされます。 要素名の有効な内容の詳細については、 x:Name 属性 リファレンスの「XamlName 文法」セクションを参照してください。
バインドがターゲット要素とターゲット プロパティにアタッチされた後は、 Binding オブジェクトのプロパティ値を設定できません。 これを試みると、実行時の例外が発生します。