(Похоже, вы имеете в виду свойство FrameworkElement.DataContext
, которое появляется в WPF. Если нет, упс.)
Это немного похоже на DataSource, но гораздо более гибко. В WPF DataContext может быть буквально любым объектом, который имеет свойства. Чтобы связать свойство, вы просто указываете его имя, а WPF позаботится обо всем остальном, выловив указанное свойство из DataContext с некоторой магией отражения. (Поля не поддерживаются.)
Например, если вы связываете представление (скажем, UserControl или Window) с объектом Employee:
class Employee {
public string FirstName { get; set; }
public string LastName { get; set; }
// more stuff. . .
}
тогда вы просто устанавливаете его DataContext для этого объекта. Тогда XAML для отображения информации из этого объекта Employee может быть таким простым:
<Label Content="{Binding FirstName}"/>
<Label Content="{Binding LastName}"/>
Опционально, DataContext может предоставлять дополнительные функциональные возможности, которые обеспечивают более богатую привязку. Например:
Если он реализует INotifyPropertyChanged или имеет свойства зависимостей , изменения в DataContext будут автоматически отражаться в пользовательском интерфейсе.
Свойства с сеттерами поддерживают двустороннее связывание.
Если он реализует INotifyDataErrorInfo , тогда вы можете выполнить проверку формы.
Если это объект ADO.NET, вы получаете всю обычную магию привязки ADO.NET.