RelativeSource Osztály

Definíció

Implementál egy korrektúrakiterjesztést, amely leírja a kötési forrás helyét a kötési cél helyéhez viszonyítva.

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
Öröklődés
RelativeSource
Attribútumok
Megvalósítás

Példák

Az alábbi példa egy stílusindítót mutat be, amely érvényesítési hibaüzenetet ToolTip küld. A RelativeSource tulajdonság használatával a beállító értéke az aktuális TextBox hibatartalomhoz (a TextBox stílus használatával) kapcsolódik. A példával kapcsolatos további információkért lásd: Kötésérvényesítés implementálása.

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

Az alábbi példában egy Style egyéni vezérlő, az úgynevezett NumericUpDowndefiníció látható. Az Text objektum tulajdonsága TextBlock annak az Value objektumnak TemplatedParenta tulajdonságához van kötve, amely az ebben az NumericUpDown esetben alkalmazott vezérlő Style .

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

Az alábbiak a kötés célelemétől kezdődően a felfelé irányuló útvonalon észlelt második ItemsControl értéket adja vissza.

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)

Megjegyzések

A kötési forrás megadásának egyik módja a Binding.RelativeSource tulajdonság használata. Ez a tulajdonság tulajdonságtípusa. RelativeSource egyidejűleg egy korrektúrakiterjesztés implementációja és egy adatobjektum. Amikor a bővítmény visszaadja magát (lásd ProvideValue), a releváns információkat az adatok tartalmazzák. A korrektúrakiterjesztés fő célja, hogy lehetővé tegye a változó-argumentum konstruktor szintaxisát attribútum formában, hogy a FindAncestor mód beágyazottan definiálható legyen az elődtípus és a szint két további argumentumával, amelyeket a többi mód nem igényel.

Az XAML-információkért lásd: RelativeSource MarkupExtension.

Konstruktorok

Name Description
RelativeSource()

Inicializálja a RelativeSource osztály új példányát.

RelativeSource(RelativeSourceMode, Type, Int32)

Inicializálja az RelativeSource osztály új példányát egy kezdeti móddal és további fajárási minősítőkkel a kívánt relatív forrás megtalálásához.

RelativeSource(RelativeSourceMode)

Inicializálja az RelativeSource osztály új példányát kezdeti móddal.

Tulajdonságok

Name Description
AncestorLevel

Lekéri vagy beállítja az előd keresendő FindAncestor szintjét módban. Az 1 használatával jelezze a kötés céleleméhez legközelebbit.

AncestorType

Lekéri vagy beállítja a keresendő előd típusát.

Mode

Lekéri vagy beállít egy RelativeSourceMode értéket, amely leírja a kötési forrás helyét a kötési cél helyéhez viszonyítva.

PreviousData

Egy statikus értéket kap, amely a módhoz készült szerkezet visszaadására RelativeSourcePreviousData szolgál.

Self

Egy statikus értéket kap, amely a módhoz készült szerkezet visszaadására RelativeSourceSelf szolgál.

TemplatedParent

Egy statikus értéket kap, amely a módhoz készült szerkezet visszaadására RelativeSourceTemplatedParent szolgál.

Metódusok

Name Description
Equals(Object)

Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal.

(Öröklődés forrása Object)
GetHashCode()

Ez az alapértelmezett kivonatoló függvény.

(Öröklődés forrása Object)
GetType()

Lekéri az Type aktuális példányt.

(Öröklődés forrása Object)
MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
ProvideValue(IServiceProvider)

Egy olyan objektumot ad vissza, amelyet a célobjektum tulajdonságának értékeként kell beállítani ehhez a korrektúrakiterjesztéshez. Ez RelativeSourceegy másik RelativeSourcelehetőség, amely a megadott mód megfelelő forrását használja.

ShouldSerializeAncestorLevel()

Azt jelzi, hogy a AncestorLevel tulajdonságot meg kell-e őrizni.

ShouldSerializeAncestorType()

Azt jelzi, hogy a AncestorType tulajdonságot meg kell-e őrizni.

ToString()

Az aktuális objektumot jelképező sztringet ad vissza.

(Öröklődés forrása Object)

Explicit interfész-implementációk

Name Description
ISupportInitialize.BeginInit()

Ez a tag támogatja a Windows megjelenítési alaprendszer (WPF) infrastruktúrát, és nem közvetlenül a kódból való használatra szolgál.

ISupportInitialize.EndInit()

Ez a tag támogatja a Windows megjelenítési alaprendszer (WPF) infrastruktúrát, és nem közvetlenül a kódból való használatra szolgál.

A következőre érvényes:

Lásd még