RelativeSource Třída

Definice

Implementuje rozšíření značek, které popisuje umístění zdroje vazby vzhledem k pozici cíle vazby.

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ří ToolTip zprávu o chybě ověření. RelativeSource Pomocí vlastnosti vytvoří hodnota setter vazby na obsah chyby aktuálního TextBox (TextBoxpomocí stylu). Další informace o tomto příkladu najdete v tématu Postupy: Implementace ověřování vazby.

<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. Text Vlastnost TextBlock je vázána na Value objekt, který je , což je NumericUpDown TemplatedParentovládací prvek, který se použije Style v tomto případě.

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

Následující vrátí druhou ItemsControl zjištěnou cestu směrem nahoru počínaje cílovým prvkem vazby.

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. Toto je typ vlastnosti této vlastnosti. RelativeSource je současně implementace rozšíření značek a datový objekt. Když se rozšíření vrátí (viz ProvideValue), příslušné informace jsou obsaženy v datech. Hlavním účelem rozšíření revizí je povolit syntaxi konstruktoru argumentů proměnných ve formuláři atributu, takže FindAncestor režim lze definovat v řádku se dvěma nadbytečnými argumenty pro nadřazený typ a úroveň, že ostatní režimy nevyžadují.

Informace o XAML najdete v tématu RelativeSource MarkupExtension.

Konstruktory

RelativeSource()

Inicializuje novou instanci RelativeSource třídy.

RelativeSource(RelativeSourceMode)

Inicializuje novou instanci RelativeSource třídy s počátečním režimem.

RelativeSource(RelativeSourceMode, Type, Int32)

Inicializuje novou instanci RelativeSource třídy s počátečním režimem a další kvalifikátory stromové chůze pro vyhledání požadovaného relativního zdroje.

Vlastnosti

AncestorLevel

Získá nebo nastaví úroveň předku hledat v FindAncestor režimu. Použijte 1 k označení nejbližšího k cílovému prvku vazby.

AncestorType

Získá nebo nastaví typ předku hledat.

Mode

Získá nebo nastaví RelativeSourceMode hodnotu, která popisuje umístění zdroje vazby vzhledem k pozici cíle vazby.

PreviousData

Získá statickou hodnotu, která se používá k vrácení RelativeSource vytvořené pro PreviousData režim.

Self

Získá statickou hodnotu, která se používá k vrácení RelativeSource vytvořené pro Self režim.

TemplatedParent

Získá statickou hodnotu, která se používá k vrácení RelativeSource vytvořené pro TemplatedParent režim.

Metody

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

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

Slouží jako výchozí funkce hash.

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

Type Získá aktuální instanci.

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

Vytvoří použádnou kopii aktuálního souboru Object.

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

Vrátí objekt, který by měl být nastaven jako hodnota u vlastnosti cílového objektu pro toto rozšíření značek. Pro RelativeSource, to je další RelativeSource, pomocí odpovídajícího zdroje pro zadaný režim.

ShouldSerializeAncestorLevel()

Určuje, zda AncestorLevel má být vlastnost zachována.

ShouldSerializeAncestorType()

Určuje, zda AncestorType má být vlastnost zachována.

ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Explicitní implementace rozhraní

ISupportInitialize.BeginInit()

Tento člen podporuje infrastrukturu Windows Presentation Foundation (WPF) a není určena k použití přímo z vašeho kódu.

ISupportInitialize.EndInit()

Tento člen podporuje infrastrukturu Windows Presentation Foundation (WPF) a není určena k použití přímo z vašeho kódu.

Platí pro

Viz také