FrameworkElement.DataContext Propriété

Définition

Obtient ou définit le contexte de données d’un élément quand il participe à la liaison de données.

public:
 property System::Object ^ DataContext { System::Object ^ get(); void set(System::Object ^ value); };
[System.Windows.Localizability(System.Windows.LocalizationCategory.NeverLocalize)]
public object DataContext { get; set; }
[<System.Windows.Localizability(System.Windows.LocalizationCategory.NeverLocalize)>]
member this.DataContext : obj with get, set
Public Property DataContext As Object

Valeur de propriété

Object

Objet à utiliser comme contexte de données.

Attributs

Exemples

L’exemple suivant illustre comment un contexte de données agit sur une liaison et fournit les informations qui définissent les valeurs spécifiques des propriétés liées.

<Window.Resources>
  <src:LeagueList x:Key="MyList" />
</Window.Resources>
<DockPanel DataContext="{Binding Source={StaticResource MyList}}">

Remarques

Le contexte de données est un concept qui permet aux éléments d’hériter des informations de leurs éléments parents sur la source de données utilisée pour la liaison, ainsi que d’autres caractéristiques de la liaison, telles que le chemin d’accès.

Le contexte de données peut être défini directement sur un objet .NET, avec les liaisons qui évaluent les propriétés de cet objet. Vous pouvez également définir le contexte de données sur un DataSourceProvider objet.

Cette propriété de dépendance hérite des valeurs de propriété. S’il existe des éléments enfants sans autres valeurs établies DataContext par le biais de valeurs locales ou de styles, le système de propriétés définit la DataContext valeur comme valeur de l’élément parent le plus proche avec cette valeur affectée.

Vous pouvez également utiliser l’une des propriétés suivantes de la Binding classe pour spécifier explicitement la source de liaison :

- <xref:System.Windows.Data.Binding.ElementName%2A>.
- <xref:System.Windows.Data.Binding.Source%2A>.
- <xref:System.Windows.Data.Binding.RelativeSource%2A>. 

Pour plus d’informations, consultez Guide pratique pour spécifier la source de liaison.

En XAML, DataContext il est généralement défini en tant que Binding déclaration. Vous pouvez utiliser la syntaxe de l’élément de propriété ou la syntaxe d’attribut. La syntaxe d’attribut est affichée dans l’exemple de cette page. Vous pouvez également utiliser du code pour définir DataContext.

DataContext est une propriété pouvant être liée pour faciliter les scénarios où un contexte peut être lié à un autre. Toutefois, si vous liez à , veillez à DataContextne pas créer de références de liaison circulaire (ne liez pas à DataContext elle-même, ce qui est possible en raison de la nature de l’héritage de la valeur de propriété de la DataContext propriété).

Utilisation des éléments de propriété XAML

<object>  
  <object.DataContext>  
    <dataContextObject />  
  </object.DataContext>  
</object>  

Utilisation d'attributs XAML

<object DataContext="bindingUsage"/>  
  • ou -
<object DataContext="{resourceExtension contextResourceKey}"/>  

Valeurs XAML

dataContextObject
Objet directement incorporé qui sert de contexte de données pour toutes les liaisons au sein de l’élément parent. En règle générale, cet objet est une Binding classe dérivée ou une autre BindingBase classe dérivée. Vous pouvez également placer des données brutes de n’importe quel type d’objet destiné à la liaison, avec les liaisons réelles définies ultérieurement.

bindingUsage
Utilisation de liaison qui s’évalue à un contexte de données approprié. Pour plus d’informations, consultez Binding, extension de balisage.

resourceExtension
L’une des opérations suivantes : StaticResource ou DynamicResource. Cette utilisation est utilisée lors de la référence aux données brutes définies en tant qu’objet dans les ressources. Consultez les ressources XAML.

contextResourceKey
Identificateur de clé de l’objet demandé à partir d’un ResourceDictionary.

Informations sur les propriétés de dépendance

Champ d’identificateur DataContextProperty
Propriétés de métadonnées définies sur true Inherits

S’applique à