Share via


Binding.Source Özellik

Tanım

Bağlama kaynağı olarak kullanılacak nesneyi alır veya ayarlar.

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

Özellik Değeri

Bağlama kaynağı olarak kullanılacak nesne.

Örnekler

Aşağıdaki örnekte, ilk vurgulanan satırda gösterildiği gibi ad alanında SDKSample tanımlanan adlı PersonName dize özelliğine sahip bir nesne kullanılırPerson. öğesini içeren vurgulanan satırda<src>, nesnesinin bir özellik değeriyle PersonName örneğini PersonJoeoluşturur. Bu, bölümünde yapılır Resources ve bir x:Keyatanır.

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

Öğeleri içeren <TextBlock> vurgulanan çizgi özelliğine nasıl bağlanacağını PersonName gösterir. Sonuç olarak, TextBlock denetim "Joe" değeriyle görüntülenir.

Aşağıdaki örnekte, Source nesnelerin değerleri Binding özelliğine staticApplication.Currentayarlanır:

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

Tam örnek için bkz. Veri Bağlama Tanıtımı.

Açıklamalar

Varsayılan olarak bağlamalar, ayarlanmışsa özelliği tarafından belirtilen veri bağlamını DataContext devralır. Ancak özelliği, Source bir kaynağını açıkça ayarlayıp devralınan veri bağlamını Binding geçersiz kılmanın yollarından biridir. Birden çok özelliğin aynı veri bağlamını devraldığı bir kapsam oluşturma işlevine ihtiyacınız yoksa, özelliği yerine DataContext özelliğini kullanabilirsinizSource.

Binding.ElementName ve Binding.RelativeSource özellikleri bağlamanın kaynağını açıkça ayarlamanıza da olanak tanır. Ancak, her bağlama için , ve RelativeSourceüç özelliğinden SourceElementNameyalnızca biri ayarlanmalıdır veya çakışma oluşabilir. Bağlama kaynağı çakışması varsa bu özellik bir özel durum oluşturur.

Bu özelliği temizlemek için olarak ayarlayın DependencyProperty.UnsetValue.

XAML Öznitelik Kullanımı

<object Source="object"/>  

XAML Değerleri

Nesne
Var olan bir nesne. Var olan bir nesneye başvurmak için StaticResource biçimlendirme uzantısını kullanın

Şunlara uygulanır