Comment : spécifier la source de liaison

Mise à jour : novembre 2007

Dans la liaison de données, l'objet de source de liaison fait référence à l'objet dont vous obtenez vos données. Cette rubrique décrit les différentes manières de spécifier la source de liaison.

Exemple

Si vous liez plusieurs propriétés à une source commune, vous souhaitez utiliser la propriété DataContext, qui offre un moyen pratique d'établir une portée dans laquelle toutes les propriétés liées aux données héritent d'une source commune.

Dans l'exemple suivant, le contexte de données est établi à l'élément racine de l'application. Cela permet à tous les éléments enfants d'hériter de ce contexte de données. Les données pour la liaison viennent d'une classe de données personnalisée, NetIncome, référencée directement à travers un mappage et attribuée de la clé de ressource incomeDataSource.

Pour obtenir l'exemple de code complet, consultez Contrôle du sens et du minutage du flux de données, exemple.

<Grid
  xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
  x:Class="SDKSample.DirectionalBinding"
  xmlns:c="clr-namespace:SDKSample"
  Name="Page1"
>
  <Grid.Resources>
    <c:NetIncome x:Key="incomeDataSource"/>
    <Style TargetType="{x:Type TextBlock}">
      <Setter Property="Padding" Value="8"/>
    </Style>
    <Style TargetType="{x:Type TextBox}">
      <Setter Property="Margin" Value="0,6,0,0"/>
    </Style>
  </Grid.Resources>
  <Grid.DataContext>
    <Binding Source="{StaticResource incomeDataSource}"/>
  </Grid.DataContext>


...


</Grid>
Remarque :

L'exemple précité instancie l'objet dans la balise et l'utilise comme une ressource. Si vous souhaitez créer une liaison avec un objet qui a déjà été instancié dans le code, vous devez définir la propriété DataContext par programme. Pour obtenir un exemple, consultez Comment : rendre des données disponibles pour la liaison en XAML.

Ou bien, si vous souhaitez spécifier explicitement la source sur vos liaisons individuelles, vous disposez des options suivantes. Celles-ci ont priorité sur le contexte de données hérité.

Propriété

Description

Source

Vous utilisez cette propriété pour définir la source sur l'instance d'un objet. Si vous n'avez pas besoin des fonctionnalités d'établissement d'une portée dans laquelle plusieurs propriétés héritent du même contexte de données, vous pouvez utiliser la propriété Source au lieu de la propriété DataContext. Pour plus d'informations, consultez Source.

RelativeSource

C'est utile lorsque vous souhaitez spécifier la source relative à l'emplacement où se trouve votre cible de liaison. Quelques scénarios courants où vous pouvez utiliser cette propriété : lorsque vous souhaitez lier une propriété de votre élément à une autre propriété du même élément ou si vous définissez une liaison dans un style ou un modèle. Pour plus d'informations, consultez RelativeSource.

ElementName

Vous spécifiez une chaîne qui représente l'élément sur lequel vous souhaitez effectuer la liaison. C'est utile lorsque vous souhaitez créer une liaison avec la propriété d'un autre élément sur votre application. Par exemple, si vous souhaitez utiliser un Slider pour contrôler la hauteur d'un autre contrôle dans votre application, ou si vous voulez lier le Content de votre contrôle à la propriété SelectedValue de votre contrôle ListBox. Pour plus d'informations, consultez ElementName.

Voir aussi

Tâches

Contrôle du sens et du minutage du flux de données, exemple

Concepts

Héritage de la valeur de propriété

Vue d'ensemble de la liaison de données

Vue d'ensemble des déclarations de liaison

Référence

FrameworkElement.DataContext

FrameworkContentElement.DataContext

Autres ressources

Exemples de liaisons de données

Rubriques Comment relatives aux liaisons de données