RelativeSource Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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
- Ö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 TemplatedParent
bağ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. |