FrameworkElement.DataContext Propiedad

Definición

Obtiene o establece el contexto de datos para un elemento cuando participa en un enlace de datos.Gets or sets the data context for an element when it participates in data binding.

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; }
member this.DataContext : obj with get, set
Public Property DataContext As Object

Valor de propiedad

Objeto que se va a usar como contexto de datos.The object to use as data context.

Atributos

Ejemplos

En el ejemplo siguiente se muestra cómo actúa un contexto de datos en un enlace y se proporciona la información que define los valores específicos de las propiedades enlazadas.The following example illustrates how a data context acts on a binding and provides the information that defines the specific values of bound properties.

<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.Data context is a concept that allows elements to inherit information from their parent elements about the data source that is used for binding, as well as other characteristics of the binding, such as the path.

El contexto de datos puede establecerse directamente en un objeto .NET, con los enlaces que se evalúan en las propiedades de ese objeto.Data context can be set directly to a .NET object, with the bindings evaluating to properties of that object. Como alternativa, puede establecer el contexto de datos en un objeto DataSourceProvider.Alternatively, you can set the data context to a DataSourceProvider object.

Esta propiedad de dependencia hereda los valores de propiedad.This dependency property inherits property values. Si hay elementos secundarios sin otros valores para DataContext establecidas a través de valores o estilos locales, el sistema de propiedades establecerá el valor para que sea el valor DataContext del elemento primario más cercano con este valor asignado.If there are child elements without other values for DataContext established through local values or styles, then the property system will set the value to be the DataContext value of the nearest parent element with this value assigned.

Como alternativa, puede usar una de las siguientes propiedades de la clase Binding para especificar el origen de enlace explícitamente:Alternatively, you can use one of the following properties of the Binding class to specify the binding source explicitly:

- <span data-ttu-id="4707d-403"><xref:System.Windows.Data.Binding.ElementName%2A>.</span><span class="sxs-lookup"><span data-stu-id="4707d-403"><xref:System.Windows.Data.Binding.ElementName%2A>.</span></span>
- <span data-ttu-id="4707d-404"><xref:System.Windows.Data.Binding.Source%2A>.</span><span class="sxs-lookup"><span data-stu-id="4707d-404"><xref:System.Windows.Data.Binding.Source%2A>.</span></span>
- <span data-ttu-id="4707d-405"><xref:System.Windows.Data.Binding.RelativeSource%2A>.</span><span class="sxs-lookup"><span data-stu-id="4707d-405"><xref:System.Windows.Data.Binding.RelativeSource%2A>.</span></span> 

Para obtener más información, vea Cómo: Especifique el origen de enlace.For more information, see How to: Specify the Binding Source.

En XAML, normalmente DataContext se establece como una declaración de Binding.In XAML, DataContext is most typically set as a Binding declaration. Puede usar la sintaxis de elementos de propiedad o la sintaxis de atributo.You can use either property element syntax or attribute syntax. La sintaxis de atributo se muestra en el ejemplo de esta página.Attribute syntax is shown in the example on this page. También puede usar código para establecer DataContext.You can also use code to set DataContext.

DataContext es una propiedad enlazable para facilitar escenarios en los que un contexto podría estar enlazado a otro.DataContext is a bindable property to facilitate scenarios where one context might be bound to another. Sin embargo, si se enlaza a DataContext, tenga cuidado de no crear referencias de enlace circulares (no enlace un DataContext a sí mismo, lo que es posible hacer debido a la naturaleza de la herencia del valor de propiedad de la propiedad DataContext).However, if you bind to DataContext, be careful to not create circular binding references (do not bind a DataContext to itself, which it is possible to do because of the property value inheritance nature of the DataContext property).

Uso de elementos de propiedad XAMLXAML Property Element Usage

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

Uso de atributos XAMLXAML Attribute Usage

<object DataContext="bindingUsage"/>  

o bien-or-

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

Valores XAMLXAML Values

dataContextObjectdataContextObject
Objeto incrustado directamente que actúa como contexto de datos para cualquier enlace dentro del elemento primario.A directly embedded object that serves as data context for any bindings within the parent element. Normalmente, este objeto es un Binding u otro BindingBase clase derivada.Typically, this object is a Binding or another BindingBase derived class. Como alternativa, los datos sin procesar de cualquier tipo de objeto destinados al enlace pueden colocarse aquí, con los enlaces reales definidos más adelante.Alternatively, raw data of any object type intended for binding may be placed here, with the actual bindings defined later.

bindingUsagebindingUsage
Un uso de enlace que se evalúa en un contexto de datos adecuado.A binding usage that evaluates to an appropriate data context. Para obtener más información, consulte Binding (extensión de marcado).For details, see Binding Markup Extension.

resourceExtensionresourceExtension
Uno de los siguientes: StaticResource o DynamicResource.One of the following: StaticResource or DynamicResource. Este uso se usa al hacer referencia a los datos sin procesar definidos como un objeto en los recursos.This usage is used when referring to raw data defined as an object in resources. Vea recursos XAML.See XAML Resources.

contextResourceKeycontextResourceKey
Identificador de clave para el objeto que se solicita desde una ResourceDictionary.The key identifier for the object being requested from within a ResourceDictionary.

Información sobre propiedades de dependenciaDependency Property Information

Campo de identificadorIdentifier field DataContextProperty
Propiedades de metadatos establecidas en trueMetadata properties set to true Inherits

Se aplica a