Información
El tema que ha solicitado se muestra abajo. Sin embargo, este tema no se encuentra en la biblioteca.

FrameworkElement.DataContextChanged Event

Se produce cuando cambia el valor de la propiedad FrameworkElement.DataContext.

Sintaxis


public event TypedEventHandler<FrameworkElement, DataContextChangedEventArgs> DataContextChanged

Información de eventos

Delegado TypedEventHandler<FrameworkElement, DataContextChangedEventArgs>

Comentarios

La propiedad FrameworkElement.DataContext tiene un comportamiento integrado que hace que su valor lo hereden todos los elementos secundarios FrameworkElement de un elemento FrameworkElement cuyo valor DataContext se haya establecido. Este comportamiento permite que un conjunto de elementos relacionados utilice el mismo contexto para enlazar a propiedades de origen diferentes, lo que es especialmente útil para plantillas de elemento, plantillas de datos, y otros escenarios de enlace de datos. Puesto que la propiedad DataContext hereda contenido, cabe la posibilidad de que cada una de las clases FrameworkElement que usen el valor heredado para desencadenar otro evento DataContextChanged cuyo origen sea el elemento heredado, y no el elemento principal, cuando el elemento detecte que el valor heredado de la propiedad DataContext ha cambiado. Si no desea este comportamiento, debe controlar el evento DataContextChanged del origen primario, donde el evento se desencadenará primero. Como parte de la lógica del controlador, establezca el valor de la propiedad Handled de los datos de evento de la clase DataContextChangedEventArgs como true. Esa acción evitará que el evento se enrute a los elementos secundarios.

Nota  El evento DataContextChanged tiene comportamiento de enrutamiento pero no es un verdadero evento enrutado (no tiene identificador RoutedEvent ). Asimismo, se distribuye del elemento principal al secundario, mientras que los eventos enrutados verdaderos se distribuyen del elemento secundario al principal. Si está familiarizado con Windows Presentation Foundation (WPF), DataContextChanged se puede considerar un evento enrutado de túnel de acuerdo con las definiciones de enrutamiento de eventos de WPF.

El evento DataContextChanged resulta útil para escenarios donde la lógica de control o la lógica basada en el código desea obtener una notificación cuando cambia el contexto de datos de los enlaces, lo que a menudo implica cambios en los valores de enlace de datos. Esto puede ser útil como desencadenador para ejecutar código que realiza cambios controlados por el contexto, y los enlaces existentes pueden utilizar el nuevo contexto para volver a calcular valores. También resulta útil para los casos donde no se desea un enlace declarado existente en las plantillas de datos, pero se necesita una notificación para los cambios. En este escenario, puede administrar DataContextChanged para detectar cambios en el contexto de datos y realizar cambios directos en otras propiedades en el código como respuesta, tal como lo haría dinámicamente un enlace declarado con XAML mediante el motor de enlace de datos. Por ejemplo, puede que tenga un control personalizado que esté principalmente destinado para su uso dentro de las plantillas de datos y desee que el control pueda realizar operaciones de enlace sin ninguna declaración Binding explícita en el XAML de la interfaz de usuario de la aplicación o en la plantilla de datos.

Comportamiento de Windows 8

Windows 8 tenía un problema al hacer un seguimiento de varios agentes de escucha para este evento. Si tuviera varios agentes de escucha o controladores para el evento, al intentar quitar uno de ellos se eliminarían todos. El problema se ha corregido en Windows 8.1; al quitar controladores de eventos se quita correctamente un solo agente de escucha. La mayoría del código no necesitará cambios o comprobaciones de comportamiento porque varios agentes de escucha es un escenario infrecuente.

Las aplicaciones que se compilaron para Windows 8 pero se ejecutan en Windows 8.1 siguen usando el comportamiento de Windows 8.

Requisitos

Cliente mínimo admitido

Windows 8.1

Servidor mínimo admitido

Windows Server 2012 R2

Espacio de nombres

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

Metadatos

Windows.winmd

Vea también

FrameworkElement
DataContext
DataContextChangedEventArgs
Introducción al enlace de datos

 

 

Mostrar:
© 2014 Microsoft