FrameworkElement.DataContext FrameworkElement.DataContext FrameworkElement.DataContext FrameworkElement.DataContext Property

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.

Ejemplos

El siguiente ejemplo muestra cómo debe actuar ante un contexto de datos en un enlace y 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

Contexto de datos es un concepto que permite que 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.

Contexto de datos puede establecerse directamente en un objeto. NET, con los enlaces que se evalúe como 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 DataSourceProvider objeto.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 no hay elementos secundarios sin otros valores para DataContext establecido a través de valores o estilos, locales, a continuación, el sistema de propiedades establecerá el valor sea el DataContext valor 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 Binding clase para especificar explícitamente el origen de enlace:Alternatively, you can use one of the following properties of the Binding class to specify the binding source explicitly:

- <span data-ttu-id="834de-403"><xref:System.Windows.Data.Binding.ElementName%2A>.</span><span class="sxs-lookup"><span data-stu-id="834de-403"><xref:System.Windows.Data.Binding.ElementName%2A>.</span></span>
- <span data-ttu-id="834de-404"><xref:System.Windows.Data.Binding.Source%2A>.</span><span class="sxs-lookup"><span data-stu-id="834de-404"><xref:System.Windows.Data.Binding.Source%2A>.</span></span>
- <span data-ttu-id="834de-405"><xref:System.Windows.Data.Binding.RelativeSource%2A>.</span><span class="sxs-lookup"><span data-stu-id="834de-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, DataContext se establece normalmente como un Binding declaración.In XAML, DataContext is most typically set as a Binding declaration. Puede usar la sintaxis de elemento de propiedad o la sintaxis de atributo.You can use either property element syntax or attribute syntax. 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 donde 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 enlaza a DataContext, tenga cuidado de no crear referencias de enlace circulares (no enlace un DataContext a sí mismo, que es posible hacerlo debido a la naturaleza de herencia del valor de propiedad de la DataContext propiedad).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"/>  
- or -  
<object DataContext="{resourceExtension contextResourceKey}"/>  

Valores XAMLXAML Values

dataContextObjectdataContextObject
Un objeto directamente incrustado que actúa como contexto de datos para todos los enlaces 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, se pueden colocar datos sin procesar de cualquier tipo de objeto pensado para el enlace en este caso, con los enlaces reales que se define más adelante.Alternatively, raw data of any object type intended for binding may be placed here, with the actual bindings defined later.

bindingUsagebindingUsage
Uso de enlace que se evalúa como 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. Esto se usa cuando se hace referencia a datos sin procesar que se define como un objeto en los recursos.This usage is used when referring to raw data defined as an object in resources. Consulte recursos XAML.See XAML Resources.

contextResourceKeycontextResourceKey
El identificador de clave para el objeto que se solicita desde un 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
Establecen las propiedades de metadatos en trueMetadata properties set to true Inherits

Se aplica a