Freigeben über


RelativeSource-Markuperweiterung

Aktualisiert: November 2007

Gibt die Eigenschaften einer RelativeSource-Bindungsquelle an, die innerhalb einer Bindung als Markuperweiterung oder beim Festlegen der RelativeSource-Eigenschaft eines in XAML eingerichteten Binding-Elements verwendet werden soll.

Verwendung von XAML-Attributen

<Binding RelativeSource="{RelativeSource modeEnumValue}" .../>

XAML-Attributverwendung (geschachtelt innerhalb der Bindungserweiterung)

<object property="{Binding RelativeSource={RelativeSource modeEnumValue} ...}" .../>

Verwendung von XAML-Objektelementen

<Binding>
  <Binding.RelativeSource>
    <RelativeSource Mode="modeEnumValue"/>
  </Binding.RelativeSource>
</Binding>
- or 
<Binding>
  <Binding.RelativeSource>
    <RelativeSource
      Mode="FindAncestor"
      AncestorType="{x:Type typeName}"
      AncestorLevel="intLevel"
    />
  </Binding.RelativeSource>
</Binding>

XAML-Werte

modeEnumValue

Eine der folgenden Anwendungen:

  • Das Zeichenfolgentoken Self; entspricht einer RelativeSource, wie diese erstellt wurde, wenn für ihre Mode-Eigenschaft Self festgelegt wurde.

  • Das Zeichenfolgentoken TemplatedParent; entspricht einer RelativeSource, wie diese erstellt wurde, wenn für ihre Mode-Eigenschaft TemplatedParent festgelegt wurde.

  • Das Zeichenfolgentoken PreviousData; entspricht einer RelativeSource, wie diese erstellt wurde, wenn für ihre Mode-Eigenschaft PreviousData festgelegt wurde.

  • Weitere Informationen über den FindAncestor-Modus finden Sie unten.

FindAncestor

Das Zeichenfolgentoken FindAncestor. Bei Verwendung dieses Tokens wird ein Modus aktiviert, der eine RelativeSource als Vorgängertyp und optional eine Vorgängerebene angibt. Dies entspricht einer RelativeSource, wie diese erstellt wurde, wenn für ihre Mode-Eigenschaft FindAncestor festgelegt wurde.

typeName

Erforderlich für FindAncestor-Modus. Der Name eines Typs, der die AncestorType-Eigenschaft auffüllt.

intLevel

Optional für FindAncestor-Modus. Eine Vorgängerebene (ausgewertet gegen die übergeordnete Richtung in der logischen Struktur).

Hinweise

In der Objektelementsyntax für den FindAncestor-Modus wie oben dargestellt wird die zweite Objektelementsyntax speziell für den FindAncestor-Modus verwendet. Für den FindAncestor-Modus ist ein AncestorType-Wert erforderlich. Sie müssen AncestorType als Attribut festlegen, unter Verwendung eines x:Type-Markuperweiterung-Verweises auf den Vorgängertyp, nach dem gesucht werden soll. Der AncestorType-Wert wird verwendet, wenn die Bindungsanforderung zur Laufzeit verarbeitet wird.

Im FindAncestor-Modus kann die optionale Eigenschaft AncestorLevel dazu beitragen, die Vorgängersuche in den Fällen eindeutig zu machen, in denen eventuell mehr als ein Vorgänger dieses Typs in der Elementstruktur vorhanden ist.

Weitere Informationen zur Verwendung des FindAncestor-Modus finden Sie unter RelativeSource

Das Konzept der Datenbindung wird hier nicht erläutert. Informationen hierzu finden Sie unter Übersicht über Datenbindung.

In der WPF-XAML-Prozessorimplementierung wird die Handhabung dieser Markuperweiterung durch die RelativeSource-Klasse definiert.

RelativeSource ist eine Markuperweiterung. Markuperweiterungen werden in der Regel implementiert, wenn Attributwerte mit Escapezeichen versehen werden müssen, damit diese nicht als literale Werte oder als Handlernamen betrachtet werden, und diese Anforderung eher global und nicht nur durch den Einsatz von Typkonvertern für bestimmte Typen oder Eigenschaften erfüllt werden soll. Alle Markuperweiterungen in XAML verwenden die Zeichen { und } in der Attributsyntax. Dies ist die Konvention, durch die ein XAML-Prozessor erkennt, dass das Attribut von einer Markuperweiterung verarbeitet werden muss. Weitere Informationen finden Sie unter Markuperweiterungen und XAML.

Siehe auch

Konzepte

Erstellen von Formaten und Vorlagen

Übersicht über XAML

Markuperweiterungen und XAML

Übersicht über Datenbindung

Übersicht über Bindungsdeklarationen

Referenz

Binding

x:Type-Markuperweiterung