Dependency property identifier field: DataContextProperty
Data context is a concept that allows objects to inherit binding-specifying information from their parents in the object tree. The most important aspect of data context is the data source that is used for binding. The data context also holds other characteristics of the binding, such as the path. For instance, you could establish the following object tree in XAML.
<StackPanel>
<StackPanel.Resources>
<SolidColorBrush Color="Orange" x:Key="MyBrush"/>
</StackPanel.Resources>
<StackPanel DataContext="{StaticResource MyBrush}">
<Rectangle Height="50" Width="50" Fill="{Binding}" />
</StackPanel>
</StackPanel>
In this case, the DataContext defined by the inner StackPanel inherits to the Rectangle child object, and becomes the data context for the otherwise unqualified binding statement made by the binding in the Fill property.
In code, data context can be set directly to a CLR object, with the bindings evaluating to properties of that object.
You can also set the DataContext to a custom object that is instantiated as a XAML object element in a ResourceDictionary, referencing it by using StaticResource to retrieve the resource by its x:Key value.
DataContext is a bindable property, to facilitate scenarios where one context might be bound to another.