Binding.RelativeSource Propriété

Définition

Obtient ou définit la source de liaison en spécifiant son emplacement par rapport à la position de la cible de liaison. Ceci est le plus souvent utilisé dans les liaisons au sein de modèles de contrôles XAML.

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}"/>

Valeur de propriété

Emplacement relatif de la source de liaison à utiliser. La valeur par défaut est Null.

Exemples

Cet exemple XAML est tiré du fichier generic.xaml qui définit les états visuels par défaut pour tous les contrôles XAML. Ce segment particulier est l’un des états visuels du contrôle ToggleSwitch . Ici, l’une des animations définies par l’état visuel fait référence aux propriétés du contrôle qui existent spécifiquement afin que les modèles puissent y accéder et obtenir des valeurs d’exécution qui modifient l’animation. Pour que le modèle XAML obtienne les propriétés du contrôle où le modèle est appliqué, la liaison doit utiliser {RelativeSource TemplatedParent} comme valeur RelativeSource.

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

Remarques

Source, RelativeSource et ElementName s’excluent mutuellement dans une liaison. Si vous avez défini l’un de ces attributs, la définition de l’un des deux autres dans une liaison (via XAML ou par le biais du code) entraîne une exception. La définition de RelativeSource en XAML nécessite toujours l’utilisation de l’extension de balisage {RelativeSource}. Cela est également vrai si vous créez la liaison entière en tant qu’extension de balisage {Binding}, auquel cas l’extension de balisage {RelativeSource} est imbriquée dans le composant RelativeSource de l’expression.

Vous ne pouvez pas définir les valeurs de propriété d’un objet Binding après que cette liaison a été attachée à un élément cible et à une propriété cible. Si vous tentez cette opération, vous obtiendrez une exception d’exécution.

S’applique à

Voir aussi