Aracılığıyla paylaş


RelativeSource Sınıf

Tanım

Bağlama kaynağının konumunu bağlama hedefinin konumuna göre açıklayan bir işaretleme uzantısı uygular.

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
Devralma
RelativeSource
Öznitelikler
Uygulamalar

Örnekler

Aşağıdaki örnekte, doğrulama hata iletisini bildiren bir ToolTip stil tetikleyicisi gösterilmektedir. RelativeSource özelliği kullanıldığında, ayarlayıcının değeri geçerli TextBox hata içeriğine (TextBoxstili kullanarak) bağlanır. Bu örnek hakkında daha fazla bilgi için bkz . Nasıl yapılır: Bağlama Doğrulaması Uygulama.

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

Aşağıdaki örnekte adlı NumericUpDownözel denetimin tanımı gösterilmektedirStyle. Text özelliğinin TextBlock özelliği, bu durumda bunun uygulandığı denetim Style olan NumericUpDown nesnesine TemplatedParentbağlıdırValue.

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

Aşağıdaki, bağlamanın hedef öğesinden başlayarak yukarı doğru yolda karşılaşılan ikinciyi ItemsControl döndürür.

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)

Açıklamalar

Bağlama kaynağı belirtme yollarından biri özelliğini kullanmaktır Binding.RelativeSource . Bu, bu özelliğin özellik türüdür. RelativeSource aynı anda bir işaretleme uzantısı uygulaması ve bir veri nesnesidir. Uzantı kendisini döndürdüğünde (bkz ProvideValue. ) ilgili bilgiler verilerde yer alır. İşaretlemeyi uzantısının temel amacı, öznitelik biçiminde değişken bağımsız değişken oluşturucu söz dizimine izin vermektir; böylece FindAncestor mod, diğer modların gerektirmediği üst tür ve düzey için iki ek bağımsız değişkenle satır içinde tanımlanabilir.

XAML bilgileri için bkz . RelativeSource MarkupExtension.

Oluşturucular

RelativeSource()

RelativeSource sınıfının yeni bir örneğini başlatır.

RelativeSource(RelativeSourceMode)

Başlangıç moduyla sınıfının yeni bir örneğini RelativeSource başlatır.

RelativeSource(RelativeSourceMode, Type, Int32)

İlk mod ve istenen göreli kaynağı bulmak için ek ağaç yürüme niteleyicileri ile sınıfının yeni bir örneğini RelativeSource başlatır.

Özellikler

AncestorLevel

Modda aranacak FindAncestor üst düzey düzeyini alır veya ayarlar. Bağlama hedef öğesine en yakın olanı belirtmek için 1 kullanın.

AncestorType

Aranacak ata türünü alır veya ayarlar.

Mode

Bağlama kaynağının konumunu bağlama hedefinin konumuna göre açıklayan bir RelativeSourceMode değer alır veya ayarlar.

PreviousData

Mod için bir oluşturulur döndürmek için PreviousData kullanılan statik bir RelativeSource değer alır.

Self

Mod için bir oluşturulur döndürmek için Self kullanılan statik bir RelativeSource değer alır.

TemplatedParent

Mod için bir oluşturulur döndürmek için TemplatedParent kullanılan statik bir RelativeSource değer alır.

Yöntemler

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
ProvideValue(IServiceProvider)

Bu işaretleme uzantısı için hedef nesnenin özelliğinde değer olarak ayarlanması gereken bir nesne döndürür. için RelativeSourcebu, belirtilen mod için uygun kaynağı kullanan başka bir RelativeSourcedeğeridir.

ShouldSerializeAncestorLevel()

Özelliğin AncestorLevel kalıcı olup olmayacağını gösterir.

ShouldSerializeAncestorType()

Özelliğin AncestorType kalıcı olup olmayacağını gösterir.

ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Belirtik Arabirim Kullanımları

ISupportInitialize.BeginInit()

Bu üye Windows Presentation Foundation (WPF) altyapısını destekler ve doğrudan kodunuzdan kullanılması amaçlanmamıştır.

ISupportInitialize.EndInit()

Bu üye Windows Presentation Foundation (WPF) altyapısını destekler ve doğrudan kodunuzdan kullanılması amaçlanmamıştır.

Şunlara uygulanır

Ayrıca bkz.