Поделиться через


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

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

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

Атрибуты

Примеры

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

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

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

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

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

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

Элемент Ценность
Поле идентификатора DataContextProperty
Свойства метаданных, равные свойству true Inherits

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