Категории
Войти
Поиск
Реклама
Полезное:
Новые статьи
Опечатка?
Выделите текст и нажмите Shift+Enter.
И мы в ближайшее время ее исправим!
Счетчики
| Основные понятия привязки данных |
|
Думая о привязке данных, никогда не упускайте из виду два момента: Каково направление движения данных между источниками данных и привязанными к данным элементами управления. Когда происходит перемещение данных. При односторонней привязке данных данные движутся только в одном направлении: значения из свойств источника данных помещаются в свойства элементов управления пользовательского интерфейса, но обратное перемещение данных - от элемента управления к источнику данных, если значения в свойствах элемента управления изменились, - отсутствует, по крайней мере, автоматическое. При двусторонней привязке данных изменение значений в привязанных свойствах элемента управления приводят к обновлению соответствующих значений в объекте источника данных в памяти клиента. Большинство механизмов привязки данных в Windows Forms реализованы как двусторонние. Вы отображаете данные из источника в элементах пользовательского интерфейса, но если пользователь вносит изменения в данные, отображаемые в элементе управления, вы хотите, чтобы эти изменения отразились также и в скрытом за ним источнике данных. Смысл двусторонней привязки данных состоит в том, чтобы это происходило само собой и не нужно было писать код, который регистрирует эти изменения и производит обновление. Второй аспект, который необходимо учитывать, это то, в какой точке исполнения программы данные перемещаются от источника данных к элементу управления (и от элемента управления обратно к источнику, если имеет место двусторонняя привязка данных). Чтобы данные перемещались, в программе должен быть какой-то код, заставляющий их двигаться. Возможны различные варианты инициации движения: Только что была исполнена строка кода, устанавливающая привязку данных. Была вызвана строка кода, заставляющая элемент управления, источник данных или сам механизм привязки обновить себя. Был вызван обработчик события, так как данные в элементе управления или источнике изменились. В зависимости от механизма привязки данных и участвующих в нем источников данных и элементов управления это может происходить неявно, в недрах базовых классов или в коде Framework, или активироваться явным образом в тех точках программы, где вам это необходимо. Чтобы заставить механизм привязки данных вести себя так, как вам требуется, чрезвычайно важно понимать, в какой момент данные приходят в движение и как этот момент зависит от элементов управления и используемых вами механизмов. Имеется две основных формы привязки данных, встроенных в управляющие классы .NET Framework: простая и сложная привязка данных. Объект Binding устанавливает соответствие между свойством Text элемента управления TextBox и свойством CompanyName текущего элемента в источнике данных - списке m_CustomerCollection. Затем этот объект Binding добавляется в коллекцию привязок данных этого элемента управления. Простая привязка данных не ограничена каким-нибудь одним свойством, и в общем случае может использоваться для привязки свойств любого элемента управления. Сложная привязка данных опирается на списки - список элементов данных (объект коллекции, реализующий интерфейс iList) привязывается к элементу управления, способному отображать сразу несколько значений. Для сопоставления списка с элементом управления сложная привязка данных обычно использует свойство DataSource: m_CustomersGrid.DataSource = m_CustomersCollection; Эпитеты «простая» и «сложная» не обязательно указывают на относительную трудность применения этих двух механизмов; они, скорее, отражают степень сложности структуры самих данных, участвующих в привязке. На самом деле в обычных ситуациях для сложной привязки данных требуется примерно тот же объем кода, что и для простой. Обширная поддержка привязки данных в элементах управления Windows Forms, наряду с мощными средствами автоматической генерации кода в Visual Studio, делает задачу представления данных из источника в визуальных элементах управления проще, чем когда-либо ранее.
Newer news items:
Older news items:
|
