Aracılığıyla paylaş


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 satır ö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>

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ı Binding açıkça ayarlayıp devralınan veri bağlamını 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 üç özelliğin ElementNameyalnızca biri ( , Sourceve RelativeSource) ayarlanmalıdır, aksi durumda çakışma oluşabilir. Bağlama kaynağı çakışması varsa bu özellik bir özel durum oluşturur.

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

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