FrameworkElement.DataContext Propiedad

Definición

Obtiene o establece el contexto de datos para un elemento cuando participa en un enlace de datos.

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

Valor de propiedad

Object

Objeto que se va a usar como contexto de datos.

Atributos

Ejemplos

En el ejemplo siguiente se muestra cómo actúa un contexto de datos en un enlace y proporciona la información que define los valores específicos de las propiedades enlazadas.

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

Comentarios

El contexto de datos es un concepto que permite a los elementos heredar información de sus elementos primarios sobre el origen de datos que se usa para el enlace, así como otras características del enlace, como la ruta de acceso.

El contexto de datos se puede establecer directamente en un objeto .NET, con los enlaces que se evalúan como propiedades de ese objeto. Como alternativa, puede establecer el contexto de datos en un DataSourceProvider objeto .

Esta propiedad de dependencia hereda los valores de propiedad. Si hay elementos secundarios sin otros valores para DataContext establecidos a través de estilos o valores locales, el sistema de propiedades establecerá el valor para que sea el DataContext valor del elemento primario más cercano con este valor asignado.

Como alternativa, puede usar una de las siguientes propiedades de la Binding clase para especificar explícitamente el origen de enlace:

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

Para obtener más información, vea Cómo: Especificar el origen de enlace.

En XAML, DataContext normalmente se establece como una Binding declaración. Puede usar la sintaxis de elemento de propiedad o la sintaxis de atributo. La sintaxis de atributo se muestra en el ejemplo de esta página. También puede usar código para establecer DataContext.

DataContext es una propiedad enlazable para facilitar escenarios en los que un contexto se pueda enlazar a otro. Sin embargo, si se enlaza a DataContext, tenga cuidado de no crear referencias de enlace circulares (no enlace un DataContext elemento a sí mismo, lo que es posible hacer debido a la naturaleza de herencia del valor de propiedad de la DataContext propiedad).

Uso de elementos de propiedad XAML

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

Uso de atributos XAML

<object DataContext="bindingUsage"/>  

o bien

<object DataContext="{resourceExtension contextResourceKey}"/>  

Valores XAML

dataContextObject
Objeto incrustado directamente que actúa como contexto de datos para los enlaces dentro del elemento primario. Normalmente, este objeto es una Binding u otra BindingBase clase derivada. Como alternativa, los datos sin procesar de cualquier tipo de objeto destinado al enlace se pueden colocar aquí, con los enlaces reales definidos más adelante.

bindingUsage
Un uso de enlace que se evalúa como un contexto de datos adecuado. Para obtener más información, consulte Binding (extensión de marcado).

resourceExtension
Uno de los siguientes: StaticResource o DynamicResource. Este uso se usa al hacer referencia a datos sin procesar definidos como un objeto en los recursos. Consulta Recursos XAML.

contextResourceKey
Identificador de clave del objeto que se solicita desde dentro de un ResourceDictionaryobjeto .

Información sobre propiedades de dependencia

Campo identificador DataContextProperty
Propiedades de metadatos establecidas en true Inherits

Se aplica a