Binding.RelativeSource プロパティ


バインディング ターゲットの位置に対して相対的な位置を指定することにより、バインディング ソースを取得または設定します。Gets or sets the binding source by specifying its location relative to the position of the binding target.

 property System::Windows::Data::RelativeSource ^ RelativeSource { System::Windows::Data::RelativeSource ^ get(); void set(System::Windows::Data::RelativeSource ^ value); };
public System.Windows.Data.RelativeSource RelativeSource { get; set; }
member this.RelativeSource : System.Windows.Data.RelativeSource with get, set
Public Property RelativeSource As RelativeSource


使用するバインディング ソースの相対的な位置を指定する RelativeSource オブジェクト。A RelativeSource object specifying the relative location of the binding source to use. 既定値は、null です。The default is null.

次の例は、検証エラーメッセージを報告ToolTipするを作成するスタイルトリガーを示しています。The following example shows a style trigger that creates a ToolTip that reports a validation error message. Setter の値は、 TextBox RelativeSourceプロパティを使用して、現在のTextBox (スタイルを使用している) のエラーコンテンツにバインドされます。The value of the setter binds to the error content of the current TextBox (the TextBox using the style) using the RelativeSource property. この例の詳細については、「」を参照してください。バインディングの検証を実装します。For more information on this example, see How to: Implement Binding Validation.

<Style x:Key="textBoxInError" TargetType="{x:Type TextBox}">
    <Trigger Property="Validation.HasError" Value="true">
      <Setter Property="ToolTip"
        Value="{Binding RelativeSource={x:Static RelativeSource.Self},

完全な例については、「バインディングの検証のサンプル」を参照してください。To see the full example, see Binding Validation Sample.


このプロパティは、通常、オブジェクトの1つのプロパティを同じオブジェクトの別のプロパティにバインドしたり、スタイルまたはテンプレートでバインディングを定義したりするために使用されます。This property is commonly used to bind one property of an object to another property of the same object, or to define a binding in a style or template.

既定では、バインドは、 DataContextプロパティによって指定されたデータコンテキスト (設定されている場合) を継承します。By default, bindings inherit the data context specified by the DataContext property, if one has been set. ただし、 Bindingプロパティは、のソースを明示的に設定し、継承されたデータコンテキストをオーバーライドする方法の1つです。 RelativeSourceHowever, the RelativeSource property is one of the ways you can explicitly set the source of a Binding and override the inherited data context. 詳細については、「方法 :バインディングソースを指定します。For more information, see How to: Specify the Binding Source.

プロパティBinding.ElementNameBinding.Sourceプロパティを使用すると、バインディングのソースを明示的に設定することもできます。The Binding.ElementName and Binding.Source properties also enable you to set the source of the binding explicitly. ただし、3つのプロパティElementName(、 Source RelativeSource、) のいずれか1つだけをバインドごとに設定する必要があります。それ以外の場合は、競合が発生する可能性があります。However, only one of the three properties, ElementName, Source, and RelativeSource, should be set for each binding, or a conflict can occur. このプロパティは、バインディングソースの競合がある場合に例外をスローします。This property throws an exception if there is a binding source conflict.

詳細XAMLXAMLについては、「 RelativeSource MarkupExtension」を参照してください。For XAMLXAML information, see RelativeSource MarkupExtension.