Partager via


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 définie dans l’espace SDKSample de noms, comme le montre la première ligne mise 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 affectée à un 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 mise en surbrillance qui contient les <TextBlock> éléments montre comment établir une liaison à 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>

Remarques

Par défaut, les liaisons héritent du contexte de données spécifié par la DataContext propriété, si une liaison a été définie. Toutefois, la Source propriété est l’une des façons dont vous pouvez définir explicitement la source d’un Binding contexte de données hérité et 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 Source propriété au lieu de la DataContext propriété.

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

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

Utilisation des attributs XAML

<object Source="object"/>

Valeurs XAML

Objet Objet existant. Pour faire référence à un objet existant, utilisez l’extension staticResource Markup

S’applique à