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

41

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

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

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

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

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

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

Пройди тесты
Лучший чат для C# программистов