FrameworkElement.DataContext Свойство

Определение

Получает или задает контекст данных для элемента, участвующего в привязке данных.

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; }
[<System.Windows.Localizability(System.Windows.LocalizationCategory.NeverLocalize)>]
member this.DataContext : obj with get, set
Public Property DataContext As Object

Значение свойства

Object

Объект, используемый в качестве контекста данных.

Атрибуты

Примеры

В следующем примере показано, как контекст данных действует в привязке и предоставляет сведения, определяющие конкретные значения связанных свойств.

<Window.Resources>
  <src:LeagueList x:Key="MyList" />
</Window.Resources>
<DockPanel DataContext="{Binding Source={StaticResource MyList}}">

Комментарии

Контекст данных — это концепция, которая позволяет элементам наследовать информацию от родительских элементов об источнике данных, используемом для привязки, а также других характеристик привязки, таких как путь.

Контекст данных можно задать непосредственно для объекта .NET с привязками, оценивающими свойства этого объекта. Кроме того, можно задать контекст данных для DataSourceProvider объекта.

Это свойство зависимостей наследует значения свойств. Если дочерние элементы отсутствуют без других значений, DataContext установленных с помощью локальных значений или стилей, система свойств установит значение для ближайшего родительского элемента с присвоенным этим значением DataContext .

Кроме того, можно использовать одно из следующих свойств Binding класса, чтобы явно указать источник привязки:

- <xref:System.Windows.Data.Binding.ElementName%2A>.
- <xref:System.Windows.Data.Binding.Source%2A>.
- <xref:System.Windows.Data.Binding.RelativeSource%2A>. 

Дополнительные сведения см. в разделе "Практическое руководство. Указание источника привязки".

В XAML DataContext чаще всего задается как Binding объявление. Можно использовать синтаксис элемента свойства или синтаксис атрибута. Синтаксис атрибута показан в примере на этой странице. Вы также можете использовать код для задания DataContext.

DataContext — это привязываемое свойство для упрощения сценариев, в которых один контекст может быть привязан к другому. Однако, если вы привязываетесь DataContext, будьте осторожны, чтобы не создавать циклические ссылки на привязку (не привязывайте DataContext себя к себе, что возможно из-за наследования DataContext значения свойства свойства).

Использование элемента свойства XAML

<object>  
  <object.DataContext>  
    <dataContextObject />  
  </object.DataContext>  
</object>  

Использование атрибута XAML

<object DataContext="bindingUsage"/>  

-или-

<object DataContext="{resourceExtension contextResourceKey}"/>  

Значения XAML

dataContextObject
Непосредственно внедренный объект, который служит контекстом данных для любых привязок в родительском элементе. Как правило, этот объект является производным классом Binding или другим BindingBase . Кроме того, необработанные данные любого типа объекта, предназначенного для привязки, могут быть размещены здесь с фактическими привязками, определенными позже.

bindingUsage
Использование привязки, результатом которого является соответствующий контекст данных. Дополнительные сведения см. в разделе Привязка расширения разметки.

resourceExtension
Одно из следующих элементов: StaticResource или DynamicResource. Это использование используется при ссылке на необработанные данные, определенные как объект в ресурсах. См. сведения о ресурсах XAML.

contextResourceKey
Идентификатор ключа для запрашиваемого объекта в пределах объекта ResourceDictionary.

Сведения о свойстве зависимостей

Поле идентификатора DataContextProperty
Metadata properties set to true Inherits

Применяется к