Binding.Source Propriété

Définition

Obtient ou définit l’objet à utiliser comme source de liaison.

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é

Objet à utiliser comme source de liaison.

Exemples

L’exemple suivant utilise un Person objet avec une propriété de chaîne nommée PersonName qui est définie dans l’espace SDKSample de noms, comme le montre la première ligne en surbrillance. Dans la ligne en surbrillance qui contient l’élément <src> , il instancie l’objet Person avec une PersonName valeur de propriété de Joe. Cette opération est effectuée dans la Resources section et un objet est affecté à 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 en surbrillance qui contient les <TextBlock> éléments montre comment se lier à la PersonName propriété . Par conséquent, le TextBlock contrôle apparaît avec la valeur « Joe ».

Dans l’exemple suivant, les Source valeurs des Binding objets sont définies sur la static propriété 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 l’exemple complet, consultez Démonstration de liaison de données.

Remarques

Par défaut, les liaisons héritent du contexte de données spécifié par la DataContext propriété, le cas échéant. Toutefois, la Source propriété est l’une des façons de définir explicitement la source d’un Binding et de remplacer le contexte de données hérité. 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é.

Les Binding.ElementName propriétés et Binding.RelativeSource vous permettent également de définir explicitement la source de la liaison. Toutefois, une seule des trois propriétés, ElementName, Sourceet RelativeSource, doit être définie pour chaque liaison, sinon un conflit peut se produire. Cette propriété lève une exception en cas de conflit source de liaison.

Pour effacer cette propriété, définissez-la sur DependencyProperty.UnsetValue.

Utilisation d'attributs XAML

<object Source="object"/>  

Valeurs XAML

object
Objet existant. Pour faire référence à un objet existant, utilisez l’extension de balisage StaticResource

S’applique à