Binding.RelativeSource Eigenschaft

Definition

Ruft die Bindungsquelle ab oder legt sie fest, indem sie seine Position relativ zur Position des Bindungsziels angibt. Dies wird am häufigsten in Bindungen innerhalb von XAML-Steuerelementvorlagen verwendet.

RelativeSource RelativeSource();

void RelativeSource(RelativeSource value);
public RelativeSource RelativeSource { get; set; }
var relativeSource = binding.relativeSource;
binding.relativeSource = relativeSource;
Public Property RelativeSource As RelativeSource
<Binding RelativeSource="{RelativeSource TemplatedParent}"/>
-or-
<Binding RelativeSource="{RelativeSource Self}"/>

Eigenschaftswert

Die relative Position der zu verwendenden Bindungsquelle. Der Standardwert ist NULL.

Beispiele

Dieses XAML-Beispiel stammt aus der Datei "generic.xaml", die die standardmäßigen visuellen Zustände für alle XAML-Steuerelemente definiert. Dieses bestimmte Segment ist einer der visuellen Zustände für das ToggleSwitch-Steuerelement . Hier verweist eine der animationen, die durch die Eigenschaften des visuellen Zustands des Steuerelements definiert wurden, die speziell vorhanden sind, damit Vorlagen darauf zugreifen und Laufzeitwerte abrufen können, die die Animation ändern. Damit die Xaml-Vorlage Eigenschaften aus dem Steuerelement abrufen kann, auf das die Vorlage angewendet wird, muss die Bindung als RelativeSource-Wert verwendet werden {RelativeSource TemplatedParent} .

<VisualStateGroup x:Name="ToggleStates">
  <VisualStateGroup.Transitions>
    <VisualTransition x:Name="DraggingToOnTransition"
      From="Dragging"
      To="On"
      GeneratedDuration="0">
      <Storyboard>
        <RepositionThemeAnimation TargetName="SwitchKnob" 
          FromHorizontalOffset="
          {Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.KnobCurrentToOnOffset}"
        />
        <RepositionThemeAnimation TargetName="SwitchCurtain"
          FromHorizontalOffset="
          {Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.CurtainCurrentToOnOffset}"
        />
      </Storyboard>
    </VisualTransition>
...
  </VisualStateGroup.Transitions>
</VisualStateGroup>

Hinweise

Source, RelativeSource und ElementName schließen sich gegenseitig in einer Bindung aus. Wenn Sie eines dieser Attribute festgelegt haben, führt das Festlegen einer der beiden anderen in einer Bindung (über XAML oder durch Code) zu einer Ausnahme. Das Festlegen von RelativeSource in XAML erfordert immer die Verwendung der {RelativeSource}-Markuperweiterung. Dies gilt auch, wenn Sie die gesamte Bindung als {Binding}-Markuperweiterung erstellen. In diesem Fall wird die {RelativeSource}-Markuperweiterung innerhalb der RelativeSource-Komponente des Ausdrucks geschachtelt.

Sie können die Eigenschaftswerte eines Binding-Objekts nicht festlegen, nachdem diese Bindung an ein Zielelement und eine Zieleigenschaft angefügt wurde. Wenn Sie dies versuchen, erhalten Sie eine Laufzeit ausnahme.

Gilt für:

Weitere Informationen