Привязка данных (Data Binding) в Silverlight - DataContext

ОГЛАВЛЕНИЕ

DataContext

Когда вы осуществляете привязку данных во время разработки, вы оповещаете приемник о том, что ему необходимо знать (т.е. вы можете сообщить элементу TextBlock о том, что он будет отображать заголовок (Title) книги) , но вам не нужно говорить ему о конкретной книге, заголовок которой он будет отображать. DataContext является определенной книгой, выбранной во время выполнения и назначенной свойству DataContext элемента структуры (Framework Element; в данном случае - TextBlock) . Таким образом, он считает: "Я получаю значение заголовка (Title) о данной (this) книге". Мы детально рассмотрим это позже.

DataContext может быть необработанной информацией, но лучше назначить ему объект типа Binding. Объект Binding "знает" о том, как приемник должен получить необходимую информацию из источника. Это и является нашим универсальным коннектором с переключателем режима (Mode).

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

Вы можете заменить данный блок

Title.DataContext = currentBook;
Author.DataContext = currentBook;
Chapters.DataContext = currentBook;
MultipleAuthor.DataContext = currentBook;
QuantityOnHand.DataContext = currentBook; 

следующей строкой

LayoutRoot.DataContext = currentBook;