Binding.Source Propriété

Définition

Obtient ou définit l’objet à utiliser comme source de liaison.Gets or sets the object to use as the binding source.

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

Valeur de propriété

Object

Objet à utiliser comme source de liaison.The object to use as the binding source.

Exemples

L’exemple suivant utilise un Person objet avec une propriété de chaîne nommée PersonName qui est définie dans l' SDKSample espace de noms, comme le montre la première ligne en surbrillance.The following example uses a Person object with a string property named PersonName that is defined in the SDKSample namespace, as the first highlighted line shows. Dans la ligne en surbrillance qui contient l' <src> élément, il instancie l' Person objet avec une PersonName valeur de propriété de Joe .In the highlighted line that contains the <src> element, it instantiates the Person object with a PersonName property value of Joe. Cette opération est effectuée dans la Resources section et assignée à un x:Key .This is done in the Resources section and assigned an 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>

La ligne surlignée qui contient les <TextBlock> éléments montre comment effectuer une liaison à la PersonName propriété.The highlighted line that contains the <TextBlock> elements shows how to bind to the PersonName property. Par conséquent, le TextBlock contrôle apparaît avec la valeur « Joe ».As a result, the TextBlock control appears with the value "Joe".

Dans l’exemple suivant, les Source valeurs des Binding objets sont définies sur la static propriété Application.Current :In the following example, the Source values of the Binding objects are set to the static property 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>

Pour obtenir un exemple complet, consultez démonstration de la liaison de données.For the full example, see Data Binding Demo.

Remarques

Par défaut, les liaisons héritent du contexte de données spécifié par la DataContext propriété, si celle-ci a été définie.By default, bindings inherit the data context specified by the DataContext property, if one has been set. Toutefois, la Source propriété est l’une des façons de définir explicitement la source d’un Binding et de substituer le contexte de données hérité.However, the Source property is one of the ways you can explicitly set the source of a Binding and override the inherited data context. Si vous n’avez pas besoin de la fonctionnalité d’établissement d’une étendue dans laquelle plusieurs propriétés héritent du même contexte de données, vous pouvez utiliser la propriété à la Source place de la DataContext propriété.If you do not need the functionality of establishing a scope in which several properties inherit the same data context, you can use the Source property instead of the DataContext property.

Les Binding.ElementName Binding.RelativeSource Propriétés et vous permettent également de définir explicitement la source de la liaison.The Binding.ElementName and Binding.RelativeSource properties also enable you to set the source of the binding explicitly. Toutefois, une seule des trois propriétés, ElementName , Source et RelativeSource , doit être définie pour chaque liaison, ou un conflit peut se produire.However, only one of the three properties, ElementName, Source, and RelativeSource, should be set for each binding, or a conflict can occur. Cette propriété lève une exception en cas de conflit de source de liaison.This property throws an exception if there is a binding source conflict.

Pour effacer cette propriété, affectez-lui la valeur DependencyProperty.UnsetValue .To clear this property, set it to DependencyProperty.UnsetValue.

Utilisation d'attributs XAMLXAML Attribute Usage

<object Source="object"/>  

Valeurs XAMLXAML Values

objectobject
Objet existant.An existing object. Pour faire référence à un objet existant, utilisez l' extension de balisage StaticResourceTo refer to an existing object, use the StaticResource Markup Extension

S’applique à