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 |