Binding.Source Propriedade

Definição

Obtém ou define o objeto para usar como fonte de ligação.

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

Valor de Propriedade

O objeto a usar como fonte de ligação.

Exemplos

O exemplo seguinte utiliza um Person objeto com uma propriedade de cadeia chamada PersonName que está definida no SDKSample namespace, como mostra a primeira linha destacada. Na linha destacada que contém o <src> elemento, instancia o Person objeto com um PersonName valor de propriedade de Joe. Isto é feito na Resources secção e atribuído a um 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>

A linha destacada que contém os <TextBlock> elementos mostra como se ligar à PersonName propriedade. Como resultado, o controlo TextBlock aparece com o valor "Joe".

No exemplo seguinte, os Source valores dos Binding objetos são definidos para a static propriedade 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>

Observações

Por defeito, as ligações herdam o contexto de dados especificado pela DataContext propriedade, se uma tiver sido definida. No entanto, a Source propriedade é uma das formas de definir explicitamente a fonte de um Binding e sobrescrever o contexto de dados herdado. Se não precisar da funcionalidade de estabelecer um âmbito em que várias propriedades herdam o mesmo contexto de dados, pode usar a Source propriedade em vez da propriedade DataContext .

As Binding.ElementName propriedades e Binding.RelativeSource também permitem definir explicitamente a fonte da ligação. No entanto, apenas uma das três propriedades, ElementName, Source, e RelativeSource, deve ser definida para cada ligação, caso contrário pode ocorrer um conflito. Esta propriedade cria uma exceção se houver um conflito de fonte de ligação.

Para limpar esta propriedade, defina-a para DependencyProperty.UnsetValue.

Uso de atributos XAML

<object Source="object"/>

Valores XAML

Objeto Um objeto existente. Para referir-se a um objeto existente, use a Extensão de Marcação StaticResource

Aplica-se a