RelativeSource Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
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
- 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. |