Data​Context​Changed​Event​Args Data​Context​Changed​Event​Args Data​Context​Changed​Event​Args Class

Definition

Provides data for the DataContextChanged event.

public : sealed class DataContextChangedEventArgs : IDataContextChangedEventArgspublic sealed class DataContextChangedEventArgs : IDataContextChangedEventArgsPublic NotInheritable Class DataContextChangedEventArgs Implements IDataContextChangedEventArgs
Attributes
Windows 10 requirements
Device family
Windows 10 (introduced v10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduced v1)

Remarks

The FrameworkElement.DataContext property has a built-in behavior whereby its value inherits to all FrameworkElement child elements of a FrameworkElement where a DataContext value is set. This behavior enables a set of related elements to use the same context to bind to different source properties, which is particularly useful for item templates, data templates, and other data binding scenarios. Because DataContext inherits, there's potential for each FrameworkElement that uses the inherited value to fire another DataContextChanged event. That event is sourced from the inheriting element, not the parent element, once the element detects that its inherited DataContext value has changed. If you don't want this behavior, you should handle the DataContextChanged event on the parent source, where the event will occur first. As part of your handler logic, set the value of the Handled property in the DataContextChangedEventArgs event data to true. That action will prevent the event from routing to child elements.

Note

DataContextChanged has routing behavior but isn't a true routed event (it does not have a RoutedEvent identifier). Also, it routes from parent to child whereas the true routed events route from child to parent. If you're familiar with Windows Presentation Foundation (WPF), DataContextChanged might be considered a tunneling routing event by the Windows Presentation Foundation (WPF) event routing definitions.

Properties

Handled Handled Handled

Gets or sets a value that influences whether another DataContextChanged event should be fired from child elements that inherit the DataContext value and detect that the value has changed.

public : PlatForm::Boolean Handled { get; set; }public bool Handled { get; set; }Public ReadWrite Property Handled As bool
Value
PlatForm::Boolean bool bool

true to prevent further DataContextChanged events from being fired for each child FrameworkElement that inherits the DataContext value. You would do this to indicate to other handlers that the necessary logic for responding to the data context change has already been performed. false to permit the event to be fired by each immediate child FrameworkElement in the element tree that detects a change to the inherited DataContext value. The default is false.

Attributes

NewValue NewValue NewValue

Gets the new DataContext value for the element where the DataContextChanged event fired.

public : PlatForm::Object NewValue { get; }public object NewValue { get; }Public ReadOnly Property NewValue As object
Value
PlatForm::Object object object

An object representing the new DataContext value for the element where the DataContextChanged event fired.

Attributes

Remarks

The NewValue value is only guaranteed to have a correct value during the invocation of your handler. You can't save the DataContextChangedEventArgs object and expect to be able to use the NewValue property on it in a meaningful way outside of the scope of a handler.