|
Страница 1 из 8 Привязка данных (Data binding) является соединением между пользовательским интерфейсом (User Interface) и бизнес-объектом либо другим провайдером данных. Объект пользовательского интерфейса называется приемником (target), провайдер данных называется источником (source).
Привязка данных помогает в разделении уровня пользовательского интерфейса вашего приложения от других уровней вашего приложения (бизнес-объектов, информации и т.д.). Разделение ответственности усиливается уменьшением связанности между приемником пользовательского интерфейса и его источником посредством использования объекта привязки (Binding). Объект привязки может быть воспринят как черный ящик с универсальными коннекторами: на одной стороне - для приемника, и на другой стороне - для источника. Сверху расположены переключатели, где самым важным является переключатель режима привязки данных (Data Binding Mode), который определяет способ передачи данных.
Рис. 2-1. Объект привязки (Binding) в качестве универсального коннектора между приемником и источником Режимы привязки данныхРежим (Mode) , который имеет тип BindingMode, является перечислением, обладающим тремя возможными значениями, как это показано ниже,
Рис. 2-2. Вырезка из документации о BindingMode OneTime (одноразовая) привязка устанавливает приемник и после этого привязка завершается. Это отлично подходит для отображения информации, которая изменяется очень редко, либо вообще никогда.
OneWay (односторонняя) привязка устанавливает приемник и обновляет его по ходу изменения источника. Это отлично подходит для отображения информации, которую пользователю не разрешено изменять.
TwoWay (двусторонняя) привязка устанавливает приемник и обновляет его по мере изменения источника, а также изменяет источник, в том случае если пользовательизменит приемник либо что-то другое в приложении, что может вызвать изменение источника. Если вы создаете интернет-магазин по продаже книг и отображаете информацию о книге, то вы можете использовать одноразовую привязку данных об авторе (Author) и для заголовка (Title), как только вы получите данную информацию (эта информация ведь не будет изменяться впоследствии ), и одностороннюю привязку для цены на книгу ( ведь кто-то может понизить цену за день) , а также вам, скорее всего, понадобится двусторонняя привязка данных для количества книг на складе. Приемником вашей привязки может быть любое общедоступное свойство (public) виртуального или CLR-объекта. Вы можете проверить это на небольшом примере; но даже в этом примере мы будем придерживаться трехуровневого подхода, при этом соблюдая строгое разделение между - Уровнем пользовательского интерфейса (User Interface Layer)
- Бизнес-уровнем (Business Layer)
- Уровнем сохраняемости (Persistence Layer).
Уровень пользовательского интерфейса будет состоять из элементов управления, которыми мы завладеем из инструментария и будем использовать такими, какие они есть. Тем не менее следующая статья расскажет о способе изменения их внешнего вида при помощи стилей и шаблонов. Бизнес-уровень будет представлен классом Book. Мы опустим пока уровень сохраняемости.
|