Bagikan melalui


Binding.Source Properti

Definisi

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

Berlaku untuk