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 concernant 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 aux 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 autre valeur DataContext définie par le biais de valeurs ou de styles locaux, le système de propriétés définit la valeur comme étant la DataContext valeur de l’élément parent le plus proche avec cette valeur assigné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 Comment : spécifier la source de liaison.

En XAML, DataContext est généralement défini en tant que Binding déclaration. Vous pouvez utiliser la syntaxe d’élément de propriété ou la syntaxe d’attribut. La syntaxe d’attribut est présenté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 dans lesquels un contexte peut être lié à un autre. Toutefois, si vous créez une liaison avec, veillez DataContext à ne pas créer de références de liaison circulaires (ne liez pas un DataContext à lui-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 incorporé directement qui sert de contexte de données pour toutes les liaisons au sein de l’élément parent. En général, cet objet est une Binding ou une autre BindingBase classe dérivée. En guise d’alternative, les données brutes de tout type d’objet destiné à la liaison peuvent être placées ici, avec les liaisons réelles définies ultérieurement.

bindingUsage
Une utilisation de liaison qui prend la valeur d’un contexte de données approprié. Pour plus d’informations, consultez Binding, extension de balisage.

resourceExtension
L’une des valeurs suivantes : StaticResource ou DynamicResource . Cette utilisation est utilisée pour faire référence à des données brutes définies en tant qu’objet dans les ressources. Consultez ressources XAML.

contextResourceKey
Identificateur de clé pour 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 à