RelativeSource Třída

Definice

Implementuje rozšíření značek, které popisuje umístění zdroje vazby relativně k pozici cíle vazby.Implements a markup extension that describes the location of the binding source relative to the position of the binding target.

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
Dědičnost
RelativeSource
Atributy
Implementuje

Příklady

Následující příklad ukazuje Trigger stylu, který vytvoří zprávu s ToolTip chybou ověřování.The following example shows a style trigger that creates a ToolTip that reports a validation error message. Pomocí RelativeSource vlastnosti se hodnota setter váže k obsahu chyby aktuálního TextBox ( TextBox pomocí stylu).Using the RelativeSource property, the value of the setter binds to the error content of the current TextBox (the TextBox using the style). Další informace o tomto příkladu naleznete v tématu How to: Implement ověřování vazeb.For more information on this example, see How to: Implement Binding Validation.

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

Následující příklad ukazuje Style definici vlastního ovládacího prvku s názvem NumericUpDown .The following example shows the Style definition of a custom control called NumericUpDown. TextVlastnost TextBlock je svázána s Value objektem, který je TemplatedParent , což je ovládací prvek, který je NumericUpDown Style v tomto případě použit.The Text property of the TextBlock is bound to the Value of the object that is the TemplatedParent, which is the NumericUpDown control that this Style is applied to in this case.

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

Kompletní ukázku naleznete v tématu vlastní ovládací prvek NumericUpDown s ukázkou podpory pro motiv a automatizaci uživatelského rozhraní.For the complete sample, see NumericUpDown Custom Control with Theme and UI Automation Support Sample.

Následující vrací druhý ItemsControl nalezený v cestě vzhůru začínající na cílovém prvku vazby.The following returns the second ItemsControl encountered on the upward path starting at the target element of the binding.

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)

Poznámky

Jedním ze způsobů, jak určit zdroj vazby, je použít Binding.RelativeSource vlastnost.One of the ways to specify a binding source is to use the Binding.RelativeSource property. Toto je typ vlastnosti této vlastnosti.This is the property type of that property. RelativeSource je současně implementací rozšíření značek a datového objektu.RelativeSource is simultaneously a markup extension implementation and a data object. Pokud rozšíření vrátí sám sebe (viz ProvideValue ), příslušné informace jsou obsaženy v datech.When the extension returns itself (see ProvideValue), the relevant information is contained in the data. Hlavním účelem rozšíření značek je povolit syntax konstruktoru variabilního argumentu ve formě atributu, takže FindAncestor režim může být definován jako vložený se dvěma argumenty navíc pro typ předchůdce a úroveň, kterou jiné režimy nevyžadují.The main purpose of the markup extension is to allow a variable-argument constructor syntax in attribute form, so that the FindAncestor mode can be defined inline with the two extra arguments for ancestor type and level that the other modes do not require.

Informace o jazyce XAML naleznete v tématu RelativeSource MarkupExtension.For XAML information, see RelativeSource MarkupExtension.

Konstruktory

RelativeSource()

Inicializuje novou instanci RelativeSource třídy.Initializes a new instance of the RelativeSource class.

RelativeSource(RelativeSourceMode)

Inicializuje novou instanci RelativeSource třídy s počátečním režimem.Initializes a new instance of the RelativeSource class with an initial mode.

RelativeSource(RelativeSourceMode, Type, Int32)

Inicializuje novou instanci RelativeSource třídy s počátečním režimem a dalšími kvalifikátory pro procházení stromové struktury pro nalezení požadovaného relativního zdroje.Initializes a new instance of the RelativeSource class with an initial mode and additional tree-walking qualifiers for finding the desired relative source.

Vlastnosti

AncestorLevel

Získá nebo nastaví úroveň předchůdce, která se má hledat v FindAncestor režimu.Gets or sets the level of ancestor to look for, in FindAncestor mode. Použijte 1 k označení nejbližšího prvku cíle vazby.Use 1 to indicate the one nearest to the binding target element.

AncestorType

Získá nebo nastaví typ předchůdce, který se má hledat.Gets or sets the type of ancestor to look for.

Mode

Získává nebo nastavuje RelativeSourceMode hodnotu, která popisuje umístění zdroje vazby relativně k pozici cíle vazby.Gets or sets a RelativeSourceMode value that describes the location of the binding source relative to the position of the binding target.

PreviousData

Získá statickou hodnotu, která se používá k vrácení RelativeSource konstrukce pro PreviousData režim.Gets a static value that is used to return a RelativeSource constructed for the PreviousData mode.

Self

Získá statickou hodnotu, která se používá k vrácení RelativeSource konstrukce pro Self režim.Gets a static value that is used to return a RelativeSource constructed for the Self mode.

TemplatedParent

Získá statickou hodnotu, která se používá k vrácení RelativeSource konstrukce pro TemplatedParent režim.Gets a static value that is used to return a RelativeSource constructed for the TemplatedParent mode.

Metody

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.Determines whether the specified object is equal to the current object.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí funkce hash.Serves as the default hash function.

(Zděděno od Object)
GetType()

Získá Type aktuální instanci.Gets the Type of the current instance.

(Zděděno od Object)
MemberwiseClone()

Vytvoří kopii aktuálního seznamu Object .Creates a shallow copy of the current Object.

(Zděděno od Object)
ProvideValue(IServiceProvider)

Vrátí objekt, který by měl být nastaven jako hodnota vlastnosti cílového objektu pro tuto příponu označení.Returns an object that should be set as the value on the target object's property for this markup extension. Pro je RelativeSource to další RelativeSource , s použitím příslušného zdroje pro zadaný režim.For RelativeSource, this is another RelativeSource, using the appropriate source for the specified mode.

ShouldSerializeAncestorLevel()

Určuje, zda má AncestorLevel být vlastnost trvalá.Indicates whether the AncestorLevel property should be persisted.

ShouldSerializeAncestorType()

Určuje, zda má AncestorType být vlastnost trvalá.Indicates whether the AncestorType property should be persisted.

ToString()

Vrátí řetězec, který představuje aktuální objekt.Returns a string that represents the current object.

(Zděděno od Object)

Explicitní implementace rozhraní

ISupportInitialize.BeginInit()

Tento člen podporuje infrastrukturu Windows Presentation Foundation (WPF) a není určen pro použití přímo v kódu.This member supports the Windows Presentation Foundation (WPF) infrastructure and is not intended to be used directly from your code.

ISupportInitialize.EndInit()

Tento člen podporuje infrastrukturu Windows Presentation Foundation (WPF) a není určen pro použití přímo v kódu.This member supports the Windows Presentation Foundation (WPF) infrastructure and is not intended to be used directly from your code.

Platí pro

Viz také