Binding.RelativeSource プロパティ

定義

バインディング ターゲットの位置に対して相対的な位置を指定することにより、バインディング ソースを取得または設定します。

public:
 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

使用するバインディング ソースの相対的な位置を指定する RelativeSource オブジェクト。 既定値は、null です。

次の例は、検証エラー メッセージを報告する ToolTip スタイル トリガーを示しています。 setter の値は、プロパティを使用して現在 TextBox のエラー コンテンツ (スタイルを TextBox 使用) に RelativeSource バインドします。 この例の詳細については、「 方法: バインド検証を実装する」を参照してください。

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

完全な例については、「 バインド検証サンプル」を参照してください。

注釈

このプロパティは、オブジェクトの 1 つのプロパティを同じオブジェクトの別のプロパティにバインドしたり、スタイルまたはテンプレートでバインドを定義したりするために一般的に使用されます。

既定では、バインディングは、プロパティで指定されたデータ コンテキストを DataContext 継承します (設定されている場合)。 ただし、この RelativeSource プロパティは、継承されたデータ コンテキストのソースを明示的に設定してオーバーライドする方法の Binding 1 つです。 詳細については、「 方法: バインディング ソースを指定する」を参照してください

プロパティ Binding.ElementNameBinding.Source 使用すると、バインディングのソースを明示的に設定することもできます。 ただし、バインディングごとに設定する必要があるプロパティElementNameSourceRelativeSource3 つのうち 1 つだけです。または競合が発生する可能性があります。 バインディング ソースの競合がある場合、このプロパティは例外をスローします。

XAML の詳細については、「 RelativeSource MarkupExtension」を参照してください。

適用対象

こちらもご覧ください