RelativeSource Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menerapkan ekstensi markup yang menjelaskan lokasi sumber pengikatan relatif terhadap posisi target pengikatan.
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
- Warisan
- Atribut
- Penerapan
Contoh
Contoh berikut menunjukkan pemicu gaya yang membuat yang ToolTip melaporkan pesan kesalahan validasi. RelativeSource Menggunakan properti , nilai setter mengikat ke konten kesalahan saat ini TextBox (TextBoxmenggunakan gaya ). Untuk informasi selengkapnya tentang contoh ini, lihat Cara: Menerapkan Validasi Pengikatan.
<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>
Contoh berikut menunjukkan Style definisi kontrol kustom yang disebut NumericUpDown. Properti Text terikat TextBlock ke Value objek yang merupakan TemplatedParent, yang merupakan NumericUpDown kontrol tempat ini Style diterapkan dalam kasus ini.
<!--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>
Berikut ini mengembalikan yang kedua ItemsControl ditemui pada jalur ke atas yang dimulai dari elemen target pengikatan.
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)
Keterangan
Salah satu cara untuk menentukan sumber pengikatan adalah dengan menggunakan Binding.RelativeSource properti . Ini adalah jenis properti properti tersebut. RelativeSource secara bersamaan merupakan implementasi ekstensi markup dan objek data. Ketika ekstensi mengembalikan dirinya sendiri (lihat ProvideValue), informasi yang relevan terkandung dalam data. Tujuan utama ekstensi markup adalah untuk memungkinkan sintaks konstruktor argumen variabel dalam bentuk atribut, sehingga FindAncestor mode dapat didefinisikan sebaris dengan dua argumen tambahan untuk jenis dan tingkat leluhur yang tidak diperlukan mode lain.
Untuk informasi XAML, lihat RelativeSource MarkupExtension.
Konstruktor
| Nama | Deskripsi |
|---|---|
| RelativeSource() |
Menginisialisasi instans baru dari kelas RelativeSource. |
| RelativeSource(RelativeSourceMode, Type, Int32) |
Menginisialisasi instans RelativeSource baru kelas dengan mode awal dan kualifikasi berjalan di pohon tambahan untuk menemukan sumber relatif yang diinginkan. |
| RelativeSource(RelativeSourceMode) |
Menginisialisasi instans RelativeSource baru kelas dengan mode awal. |
Properti
| Nama | Deskripsi |
|---|---|
| AncestorLevel |
Mendapatkan atau mengatur tingkat leluhur yang akan dicari, dalam FindAncestor mode. Gunakan 1 untuk menunjukkan yang paling dekat dengan elemen target pengikatan. |
| AncestorType |
Mendapatkan atau mengatur jenis leluhur yang akan dicari. |
| Mode |
Mendapatkan atau menetapkan RelativeSourceMode nilai yang menjelaskan lokasi sumber pengikatan relatif terhadap posisi target pengikatan. |
| PreviousData |
Mendapatkan nilai statis yang digunakan untuk mengembalikan yang RelativeSource dibangun untuk mode tersebut PreviousData . |
| Self |
Mendapatkan nilai statis yang digunakan untuk mengembalikan yang RelativeSource dibangun untuk mode tersebut Self . |
| TemplatedParent |
Mendapatkan nilai statis yang digunakan untuk mengembalikan yang RelativeSource dibangun untuk mode tersebut TemplatedParent . |
Metode
| Nama | Deskripsi |
|---|---|
| Equals(Object) |
Menentukan apakah objek yang ditentukan sama dengan objek saat ini. (Diperoleh dari Object) |
| GetHashCode() |
Berfungsi sebagai fungsi hash default. (Diperoleh dari Object) |
| GetType() |
Mendapatkan Type instans saat ini. (Diperoleh dari Object) |
| MemberwiseClone() |
Membuat salinan dangkal dari Objectsaat ini. (Diperoleh dari Object) |
| ProvideValue(IServiceProvider) |
Mengembalikan objek yang harus ditetapkan sebagai nilai pada properti objek target untuk ekstensi markup ini. Untuk RelativeSource, ini adalah sumber lain RelativeSource, menggunakan sumber yang sesuai untuk mode yang ditentukan. |
| ShouldSerializeAncestorLevel() |
Menunjukkan apakah AncestorLevel properti harus dipertahankan. |
| ShouldSerializeAncestorType() |
Menunjukkan apakah AncestorType properti harus dipertahankan. |
| ToString() |
Mengembalikan string yang mewakili objek saat ini. (Diperoleh dari Object) |
Implementasi Antarmuka Eksplisit
| Nama | Deskripsi |
|---|---|
| ISupportInitialize.BeginInit() |
Anggota ini mendukung infrastruktur Windows Presentation Foundation (WPF) dan tidak dimaksudkan untuk digunakan langsung dari kode Anda. |
| ISupportInitialize.EndInit() |
Anggota ini mendukung infrastruktur Windows Presentation Foundation (WPF) dan tidak dimaksudkan untuk digunakan langsung dari kode Anda. |