Binding.Source Properti
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.
Mendapatkan atau mengatur objek yang akan digunakan sebagai sumber pengikatan.
public:
property System::Object ^ Source { System::Object ^ get(); void set(System::Object ^ value); };
public object Source { get; set; }
member this.Source : obj with get, set
Public Property Source As Object
Nilai Properti
Objek yang akan digunakan sebagai sumber pengikatan.
Contoh
Contoh berikut menggunakan objek dengan properti string bernama PersonName
yang ditentukan dalam SDKSample
namespace, seperti yang ditunjukkan baris pertama yang disorotPerson
. Dalam baris yang disorot yang berisi <src>
elemen , ini membuat instans Person
objek dengan PersonName
nilai properti .Joe
Ini dilakukan di bagian Resources
dan diberi x:Key
.
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:src="clr-namespace:SDKSample"
SizeToContent="WidthAndHeight"
Title="Simple Data Binding Sample">
<Window.Resources>
<src:Person x:Key="myDataSource" PersonName="Joe"/>
<Style TargetType="{x:Type Label}">
<Setter Property="DockPanel.Dock" Value="Top"/>
<Setter Property="FontSize" Value="12"/>
</Style>
<Style TargetType="{x:Type TextBox}">
<Setter Property="Width" Value="100"/>
<Setter Property="Height" Value="25"/>
<Setter Property="DockPanel.Dock" Value="Top"/>
</Style>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="Width" Value="100"/>
<Setter Property="Height" Value="25"/>
<Setter Property="DockPanel.Dock" Value="Top"/>
<Setter Property="Padding" Value="3"/>
</Style>
</Window.Resources>
<Border Margin="5" BorderBrush="Aqua" BorderThickness="1" Padding="8" CornerRadius="3">
<DockPanel Width="200" Height="100" Margin="35">
<Label>Enter a Name:</Label>
<TextBox>
<TextBox.Text>
<Binding Source="{StaticResource myDataSource}" Path="PersonName"
UpdateSourceTrigger="PropertyChanged"/>
</TextBox.Text>
</TextBox>
<Label>The name you entered:</Label>
<TextBlock Text="{Binding Source={StaticResource myDataSource}, Path=PersonName}"/>
</DockPanel>
</Border>
</Window>
Baris yang disorot yang berisi <TextBlock>
elemen menunjukkan cara mengikat ke PersonName
properti . Akibatnya, TextBlock kontrol muncul dengan nilai "Joe".
Dalam contoh berikut, Source nilai Binding objek diatur ke static
properti Application.Current:
<ComboBox.IsEnabled>
<MultiBinding Converter="{StaticResource specialFeaturesConverter}">
<Binding Path="CurrentUser.Rating"
Source="{x:Static Application.Current}"/>
<Binding Path="CurrentUser.MemberSince"
Source="{x:Static Application.Current}"/>
</MultiBinding>
</ComboBox.IsEnabled>
Untuk contoh lengkapnya, lihat Demo Pengikatan Data.
Keterangan
Secara default, pengikatan mewarisi konteks data yang ditentukan oleh DataContext
properti , jika telah ditetapkan. Namun, Source properti adalah salah satu cara Anda dapat secara eksplisit mengatur sumber Binding dan mengambil alih konteks data yang diwariskan. Jika Anda tidak memerlukan fungsionalitas untuk membuat cakupan di mana beberapa properti mewarisi konteks data yang sama, Anda dapat menggunakan Source properti alih-alih DataContext
properti .
Properti Binding.ElementName dan Binding.RelativeSource juga memungkinkan Anda mengatur sumber pengikatan secara eksplisit. Namun, hanya salah satu dari tiga properti, , ElementName, Sourcedan RelativeSource, yang harus diatur untuk setiap pengikatan, atau konflik yang dapat terjadi. Properti ini memberikan pengecualian jika ada konflik sumber pengikatan.
Untuk menghapus properti ini, atur ke DependencyProperty.UnsetValue.
Penggunaan Atribut XAML
<object Source="object"/>
Nilai XAML
objek
Objek yang sudah ada. Untuk merujuk ke objek yang sudah ada, gunakan Ekstensi Markup StaticResource