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 qui signale un message d’erreur de validation. À l’aide de la RelativeSource propriété, la valeur du setter est liée au contenu d’erreur du actuel TextBox (à l’aide du TextBox 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é du TextBlock est liée au Value
de l’objet qui est le TemplatedParent
, qui est le NumericUpDown
contrôle auquel cela 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>
Ce qui suit retourne le deuxième ItemsControl rencontré sur le chemin vers le haut en commençant à 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 à la fois une implémentation d’extension de balisage et un objet de données. Lorsque l’extension 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’arguments variables sous forme d’attribut, afin que le FindAncestor mode puisse être défini en ligne avec les deux arguments supplémentaires pour le type et le niveau ancêtres que les autres modes n’exigent pas.
Pour plus d’informations XAML, consultez RelativeSource MarkupExtension.
Constructeurs
RelativeSource() |
Initialise une nouvelle instance de la classe RelativeSource. |
RelativeSource(RelativeSourceMode) |
Initialise une nouvelle instance de la classe RelativeSource avec un mode initial. |
RelativeSource(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. |
Propriétés
AncestorLevel |
Obtient ou définit le niveau d’ancêtre à rechercher, en mode FindAncestor. 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 valeur RelativeSourceMode 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 un RelativeSource construit pour le mode PreviousData. |
Self |
Obtient une valeur statique utilisée pour retourner un RelativeSource construit pour le mode Self. |
TemplatedParent |
Obtient une valeur statique utilisée pour retourner un RelativeSource construit pour le mode TemplatedParent. |
Méthodes
Equals(Object) |
Détermine si l'objet spécifié est égal à l'objet actuel. (Hérité de Object) |
GetHashCode() |
Fait office de fonction de hachage par défaut. (Hérité de Object) |
GetType() |
Obtient le Type de l'instance actuelle. (Hérité de Object) |
MemberwiseClone() |
Crée une copie superficielle du Object actuel. (Hérité de Object) |
ProvideValue(IServiceProvider) |
Retourne 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é. |
ShouldSerializeAncestorLevel() |
Indique si la propriété AncestorLevel doit être rendue persistante. |
ShouldSerializeAncestorType() |
Indique si la propriété AncestorType doit être rendue persistante. |
ToString() |
Retourne une chaîne qui représente l'objet actuel. (Hérité de Object) |
Implémentations d’interfaces explicites
ISupportInitialize.BeginInit() |
Ce membre prend en charge l’infrastructure Windows Presentation Foundation (WPF) et n’est pas destiné à être utilisé directement à partir de votre code. |
ISupportInitialize.EndInit() |
Ce membre prend en charge l’infrastructure Windows Presentation Foundation (WPF) et n’est pas destiné à être utilisé directement à partir de votre code. |