Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source
Ce sujet n'a pas encore été évalué - Évaluez ce sujet

RelativeSource, classe

Implémente une extension de balisage qui décrit l'emplacement de la source de liaison relatif à la position de la cible de liaison.

Espace de noms :  System.Windows.Data
Assembly :  PresentationFramework (dans PresentationFramework.dll)
XMLNS pour XAML : http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation
[MarkupExtensionReturnTypeAttribute(typeof(RelativeSource))]
public class RelativeSource : MarkupExtension, 
	ISupportInitialize

Le type RelativeSource expose les membres suivants.

  NomDescription
Méthode publiqueRelativeSource()Initialise une nouvelle instance de la classe RelativeSource.
Méthode publiqueRelativeSource(RelativeSourceMode)Initialise une nouvelle instance de la classe RelativeSource avec un mode initial.
Méthode publiqueRelativeSource(RelativeSourceMode, Type, Int32)Initialise une nouvelle instance de la classe RelativeSource avec un mode initial et des qualificateurs de marche d'arborescence supplémentaires pour rechercher la source relative souhaitée.
Début
  NomDescription
Propriété publiqueAncestorLevelObtient ou définit le niveau ancêtre à rechercher, en mode FindAncestor. Utilisez 1 pour indiquer celui le plus proche de l'élément de la cible de liaison.
Propriété publiqueAncestorTypeObtient ou définit le type ancêtre à rechercher.
Propriété publiqueModeObtient ou définit une valeur RelativeSourceMode qui décrit l'emplacement de la source de liaison relatif à la position de la cible de liaison.
Propriété publiqueMembre statiquePreviousDataObtient une valeur statique utilisée pour retourner un RelativeSource construit pour le mode PreviousData.
Propriété publiqueMembre statiqueSelfObtient une valeur statique utilisée pour retourner un RelativeSource construit pour le mode Self.
Propriété publiqueMembre statiqueTemplatedParentObtient une valeur statique utilisée pour retourner RelativeSource construit pour le mode TemplatedParent.
Début
  NomDescription
Méthode publiqueEquals(Object)Détermine si l'objet spécifié est identique à l'objet actuel. (Hérité de Object.)
Méthode protégéeFinalize Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de nettoyage avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.)
Méthode publiqueGetHashCodeSert de fonction de hachage pour un type particulier. (Hérité de Object.)
Méthode publiqueGetTypeObtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode protégéeMemberwiseCloneCrée une copie superficielle de l'objet Object actuel. (Hérité de Object.)
Méthode publiqueProvideValueRetourne un objet qui doit être défini comme la valeur sur la propriété de l'objet cible pour cette extension de balisage. Pour RelativeSource, il s'agit d'un autre RelativeSource qui utilise la source appropriée pour le mode spécifié. (Substitue MarkupExtension.ProvideValue(IServiceProvider).)
Méthode publiqueShouldSerializeAncestorLevelIndique si la propriété AncestorLevel doit être persistante.
Méthode publiqueShouldSerializeAncestorTypeIndique si la propriété AncestorType doit être persistante.
Méthode publiqueToStringRetourne une chaîne qui représente l'objet actuel. (Hérité de Object.)
Début
  NomDescription
Implémentation d'interface expliciteMéthode privéeISupportInitialize.BeginInitCe membre prend en charge l'infrastructure Windows Presentation Foundation (WPF) et n'est pas conçu pour être directement utilisé à partir du code.
Implémentation d'interface expliciteMéthode privéeISupportInitialize.EndInitCe membre prend en charge l'infrastructure Windows Presentation Foundation (WPF) et n'est pas conçu pour être directement utilisé à partir du code.
Début

L'une des façons de spécifier une source de liaison est d'utiliser la propriété Binding.RelativeSource. Il s'agit du type de propriété de cette propriété. RelativeSource est simultanément une implémentation d'extension de balisage et un objet de données. Lorsque l'extension se retourne elle-même (consultez ProvideValue), toute information pertinente est contenue dans les données. L'objectif principal de l'extension de balisage est d'autoriser une syntaxe de constructeur à arguments variables sous forme d'attribut, afin que le mode FindAncestor puisse être défini inline avec les deux arguments supplémentaires pour le type et le niveau ancêtre que les autres modes ne requièrent pas.

Pour plus d'informations sur XAML, consultez RelativeSource, extension de balisage.

L'exemple suivant montre un déclencheur de style qui crée un ToolTip pour signaler un message d'erreur de validation. À l'aide de la propriété RelativeSource, la valeur de l'accesseur crée une liaison au contenu d'erreur du TextBox actif (le TextBox qui utilise le style). Pour plus d'informations sur cet exemple, consultez Comment : implémenter la validation de la liaison.


<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)[0].ErrorContent}"/>
    </Trigger>
  </Style.Triggers>
</Style>


L'exemple suivant montre la définition du Style d'un contrôle personnalisé appelé NumericUpDown. La propriété Text du TextBlock est liée à la Value de l'objet qui est le TemplatedParent, qui est le contrôle NumericUpDown auquel ce Style est appliqué dans ce cas.


<!--ControlTemplate for NumericUpDown that inherits from
    Control.-->
<Style TargetType="{x:Type local:NumericUpDown}">
  <Setter Property="HorizontalAlignment" Value="Center"/>
  <Setter Property="VerticalAlignment" Value="Center"/>
  <Setter Property="Template">
    <Setter.Value>
      <ControlTemplate TargetType="{x:Type local:NumericUpDown}">
        <Grid Margin="3">
          <Grid.RowDefinitions>
            <RowDefinition/>
            <RowDefinition/>
          </Grid.RowDefinitions>
          <Grid.ColumnDefinitions>
            <ColumnDefinition/>
            <ColumnDefinition/>
          </Grid.ColumnDefinitions>

          <Border BorderThickness="1" BorderBrush="Gray" 
                  Margin="2" Grid.RowSpan="2" 
                  VerticalAlignment="Center" HorizontalAlignment="Stretch">

            <TextBlock Text="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Value}" 
                       Width="60" TextAlignment="Right" Padding="5"/>
          </Border>

          <RepeatButton Command="{x:Static local:NumericUpDown.IncreaseCommand}"  
                        Grid.Column="1" Grid.Row="0">Up</RepeatButton>

          <RepeatButton Command="{x:Static local:NumericUpDown.DecreaseCommand}"
                        Grid.Column="1" Grid.Row="1">Down</RepeatButton>

        </Grid>

      </ControlTemplate>
    </Setter.Value>
  </Setter>
</Style>


Pour l'exemple complet, consultez NumericUpDown Custom Control with Theme and UI Automation Support Sample.

L'exemple suivant retourne le deuxième ItemsControl détecté sur le chemin ascendant commençant à partir de l'élément cible de la liaison.


		  Dim myBinding As New Binding()
		  ' Returns the second ItemsControl encountered on the upward path
		  ' starting at the target element of the binding
		  myBinding.RelativeSource = New RelativeSource(RelativeSourceMode.FindAncestor, GetType(ItemsControl), 2)



Binding myBinding = new Binding();
// Returns the second ItemsControl encountered on the upward path
// starting at the target element of the binding
myBinding.RelativeSource = new RelativeSource(
    RelativeSourceMode.FindAncestor, typeof(ItemsControl), 2);


.NET Framework

Pris en charge dans : 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.
Cela vous a-t-il été utile ?
(1500 caractères restants)

Ajouts de la communauté

AJOUTER
© 2013 Microsoft. Tous droits réservés.