RelativeSource Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Implémente une extension de balisage qui décrit l’emplacement de la source de liaison par rapport à la position de la cible de liaison.
public ref class RelativeSource : System::Windows::Markup::MarkupExtension, System::ComponentModel::ISupportInitialize
[System.Windows.Markup.MarkupExtensionReturnType(typeof(System.Windows.Data.RelativeSource))]
public class RelativeSource : System.Windows.Markup.MarkupExtension, System.ComponentModel.ISupportInitialize
[<System.Windows.Markup.MarkupExtensionReturnType(typeof(System.Windows.Data.RelativeSource))>]
type RelativeSource = class
inherit MarkupExtension
interface ISupportInitialize
Public Class RelativeSource
Inherits MarkupExtension
Implements ISupportInitialize
- Héritage
- Attributs
- Implémente
Exemples
L’exemple suivant montre un déclencheur de style qui crée un ToolTip message d’erreur de validation. À l’aide de la RelativeSource propriété, la valeur du setter est liée au contenu d’erreur de l’élément actif TextBox (à TextBox l’aide du style). Pour plus d’informations sur cet exemple, consultez Guide pratique pour implémenter la validation de 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)/ErrorContent}"/>
</Trigger>
</Style.Triggers>
</Style>
L’exemple suivant montre la Style définition d’un contrôle personnalisé appelé NumericUpDown. La Text propriété de l’objet TextBlock est liée à Value l’objet qui est TemplatedParentle , qui est le NumericUpDown contrôle auquel il 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>
L’exemple suivant retourne la seconde ItemsControl rencontrée sur le chemin vers le haut à partir de l’élément cible de la liaison.
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);
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)
Remarques
L’une des façons de spécifier une source de liaison consiste à utiliser la Binding.RelativeSource propriété. 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 (voir ProvideValue), les informations pertinentes sont contenues dans les données. L’objectif principal de l’extension de balisage est d’autoriser une syntaxe de constructeur d’argument variable sous forme d’attribut, afin que le FindAncestor mode puisse être défini en ligne avec les deux arguments supplémentaires pour le type ancêtre et le niveau que les autres modes ne nécessitent pas.
Pour plus d’informations XAML, consultez RelativeSource MarkupExtension.
Constructeurs
| Nom | Description |
|---|---|
| RelativeSource() |
Initialise une nouvelle instance de la classe RelativeSource. |
| RelativeSource(RelativeSourceMode, Type, Int32) |
Initialise une nouvelle instance de la RelativeSource classe avec un mode initial et des qualificateurs d’arbre supplémentaires pour rechercher la source relative souhaitée. |
| RelativeSource(RelativeSourceMode) |
Initialise une nouvelle instance de la RelativeSource classe avec un mode initial. |
Propriétés
| Nom | Description |
|---|---|
| AncestorLevel |
Obtient ou définit le niveau d’ancêtre à rechercher, en FindAncestor mode. Utilisez 1 pour indiquer celui le plus proche de l’élément cible de liaison. |
| AncestorType |
Obtient ou définit le type d’ancêtre à rechercher. |
| Mode |
Obtient ou définit une RelativeSourceMode valeur qui décrit l’emplacement de la source de liaison par rapport à la position de la cible de liaison. |
| PreviousData |
Obtient une valeur statique utilisée pour retourner une RelativeSource construction pour le PreviousData mode. |
| Self |
Obtient une valeur statique utilisée pour retourner une RelativeSource construction pour le Self mode. |
| TemplatedParent |
Obtient une valeur statique utilisée pour retourner une RelativeSource construction pour le TemplatedParent mode. |
Méthodes
| Nom | Description |
|---|---|
| Equals(Object) |
Détermine si l’objet spécifié est égal à l’objet actuel. (Hérité de Object) |
| GetHashCode() |
Sert de fonction de hachage par défaut. (Hérité de Object) |
| GetType() |
Obtient la Type de l’instance actuelle. (Hérité de Object) |
| MemberwiseClone() |
Crée une copie superficielle du Objectactuel. (Hérité de Object) |
| ProvideValue(IServiceProvider) |
Retourne un objet qui doit être défini comme valeur sur la propriété de l’objet cible pour cette extension de balisage. Pour RelativeSource, il s’agit d’un autre RelativeSource, en utilisant la source appropriée pour le mode spécifié. |
| ShouldSerializeAncestorLevel() |
Indique si la AncestorLevel propriété doit être conservée. |
| ShouldSerializeAncestorType() |
Indique si la AncestorType propriété doit être conservée. |
| ToString() |
Retourne une chaîne qui représente l’objet actuel. (Hérité de Object) |
Implémentations d’interfaces explicites
| Nom | Description |
|---|---|
| ISupportInitialize.BeginInit() |
Ce membre prend en charge l’infrastructure WPF (Windows Presentation Foundation) et n’est pas destiné à être utilisé directement à partir de votre code. |
| ISupportInitialize.EndInit() |
Ce membre prend en charge l’infrastructure WPF (Windows Presentation Foundation) et n’est pas destiné à être utilisé directement à partir de votre code. |