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
Непосредственно внедренный объект, который служит контекстом данных для любых привязок в родительском элементе. Как правило, этот объект является производным классом Binding или другим BindingBase . Кроме того, необработанные данные любого типа объекта, предназначенного для привязки, могут быть размещены здесь с фактическими привязками, определенными позже.
bindingUsage
Использование привязки, результатом которого является соответствующий контекст данных. Дополнительные сведения см. в разделе Привязка расширения разметки.
resourceExtension
Одно из следующих элементов: StaticResource
или DynamicResource
. Это использование используется при ссылке на необработанные данные, определенные как объект в ресурсах. См. сведения о ресурсах XAML.
contextResourceKey
Идентификатор ключа для запрашиваемого объекта в пределах объекта ResourceDictionary.
Сведения о свойстве зависимостей
Поле идентификатора | DataContextProperty |
Metadata properties set to true |
Inherits |