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