Нашли ошибку или опечатку? Выделите текст и нажмите

Поменять цветовую

гамму сайта?

Поменять
Обновления сайта
и новые разделы

Рекомендовать в Google +1

Привязка данных

41

Элементы графического пользовательского интерфейса нередко оказываются целью различных операций привязки данных. Проще говоря, привязка данных — это действие связывания свойства элемента управления со значениями данных. Совершая это действие, можно значительно упростить задачу написания кода, поскольку текущее состояние привязываемых свойств будет автоматически отображаться в пользовательском интерфейсе. Ниже приведены характерные примеры привязки данных:

  • Привязка значения свойства логического класса к элементу управления типа CheckBox.

  • Заполнение объекта типа DataGrid данными из специальной коллекции.

  • Заполнение элемента управления типа ListBox значениями из XML-документа.

Для правильной реализации привязки данных необходимо ясно представлять себе отличие источника операции привязки от ее адресата, или цели. Как и следовало ожидать, в качестве источника операции привязки данных служит место, откуда поступают данные (свойство объекта, узел разметки XML и т.д.), а в качестве адресата (или цели) — свойство элемента пользовательского интерфейса (типа CheckBox, TextBox и т.д.), получающего из источника данные и использующего их.

Для прояснения этого важного отличия приведенные выше примеры привязки данных можно уточнить следующим образом:

  • Исходное логическое значение может быть привязано к целевому свойству элемента управления типа CheckBox.

  • Целевой объект типа DataGrid может быть заполнен данными из исходной специальной коллекции.

  • Целевой объект типа ListBox может быть заполнен данными из исходного XML-документа, опираясь на оператор XPath.

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

Так, если в главном окне типа Window имеется элемент управления типа ScrollBar, значение свойства которого требуется отображать в свойстве элемента управления типа Label, для этой цели может потребоваться обработка события ValueChanged, наступающего при изменении значения в свойстве элемента управления типа ScrollBar, а следовательно, и обновление соответствующего свойства элемента управления типа Label.

Как правило, привязка данных на платформах WPF и Silverlight позволяет устанавливать подобные связи исключительно средствами XAML. И хотя это справедливо в большинстве случаев, для реализации привязки данных иногда все же приходится писать дополнительный процедурный код.

Пройди тесты