Windows Dev Center

FrameworkElement.DataContext Property

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

Sintaxis


public object DataContext { get; set; }


<frameworkElement DataContext="binding"/>
- or -
<frameworkElement DataContext="{StaticResource keyedObject}"/>
 

XAML Values

binding

Expresión de enlace que puede hacer referencia a un contexto de datos existente o a una propiedad del contexto de datos. Vea Inicio rápido: Enlace de datos a los controles o Enlace de extensiones de marcado.

keyedObject

Valor x:Key de un objeto que existe en una colección Resources dentro del ámbito. Normalmente, se trata de una creación de instancias de elementos de objeto de un tipo personalizado definido en otra parte del código y necesita una asignación de espacio de nombres XAML personalizada en ResourceDictionary.

Valor de propiedades

Tipo: System.Object [.NET] | Platform::Object [C++]

Objeto que se va a usar como contexto de datos.

Comentarios

Contexto de datos es un concepto donde los objetos pueden heredar información de enlace de datos de sucesivos objetos primarios en una jerarquía de relaciones de objeto.

El aspecto más importante del contexto de datos es el origen de datos que se utiliza para el enlace de datos. Un uso típico de DataContext es establecerlo directamente en un objeto de origen de datos. Este origen de datos podría ser una instancia de una clase como un objeto comercial. O bien puede crear un origen de datos como colección observable, de modo que el contexto de datos permita detectar los cambios en la colección de respaldo. Si el origen de datos está definido por una biblioteca que también está incluida en el proyecto, el establecimiento de una propiedad DataContext a menudo se combina con la creación de instancias del origen de datos como un recurso con clave en un elemento ResourceDictionary y, a continuación, con el establecimiento de la propiedad DataContext en XAML con una referencia StaticResource.

Otra técnica para establecer DataContext es agregarlo a la raíz del árbol de objetos en tiempo de ejecución, como parte de la lógica de inicialización de la aplicación, justo después de llamar a InitializeComponent. Esta técnica se muestra en el Inicio rápido: enlace de datos a los controles.

Además de especificar el origen, un contexto de datos también puede almacenar características adicionales de una declaración de enlace, como una ruta de acceso al origen de datos.

Establecer DataContext es adecuado para establecer varios enlaces de distintas propiedades del mismo objeto en un contexto de datos compartidos. Sin embargo, es válido que DataContext sea indefinido y que para todas las calificaciones obligatorias necesarias exista en instrucciones de enlace independientes.

La forma en que se implementa el origen de datos del objeto varía dependiendo de los requisitos y del lenguaje de programación. Para obtener más información, vea Introducción al enlace de datos, en particular la sección "Enlace a colecciones".

Un escenario común para los contextos de datos de C# y Microsoft Visual Basic es utilizar un objeto comercial definido por CLR que admite la notificación de cambios. Para un objeto de negocios, la clase personalizada utilizada como contexto de datos normalmente implementa INotifyPropertyChanged, de modo que al actualizar los datos se actualice un enlace de datos unidireccional o bidireccional. Si el origen de datos es una colección de objetos comerciales, puede implementar la interfaz INotifyCollectionChanged más compatibilidad de lista (interfaces IList<T> o List<T>), o derivar de la clase ObservableCollection<T>.

Ejemplos

Este ejemplo establece DataContext directamente en una instancia de una clase personalizada.


// Create an instance of the MyColors class 
// that implements INotifyPropertyChanged.
MyColors textcolor = new MyColors();

// Brush1 is set to be a SolidColorBrush with the value Red.
textcolor.Brush1 = new SolidColorBrush(Colors.Red);

// Set the DataContext of the TextBox MyTextBox.
MyTextBox.DataContext = textcolor;


Requisitos

Cliente mínimo admitido

Windows 8

Servidor mínimo admitido

Windows Server 2012

Espacio de nombres

Windows.UI.Xaml
Windows::UI::Xaml [C++]

Metadatos

Windows.winmd

Vea también

FrameworkElement
Binding
Introducción al enlace de datos
ObservableCollection<T>

 

 

Mostrar:
© 2015 Microsoft