Войти



Поиск

Реклама

Полезное:

Новые статьи

Опечатка?

Выделите текст и нажмите Shift+Enter.
И мы в ближайшее время ее исправим!

Счетчики


элементы управления

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

Если вы запустите образец приложения SimpleNorthwindClient из загруженного кода, то увидите форму, изображенную на 3.1, с дополнительными текстовыми полями и комбинированным списком. Данные привязаны к сетке, комбинированному списку и текстовым полям при помощи кода, сходного с кодом в листингах 3.2, 3.3 и 3.4. Если вы выберете щелчком мыши другую строку в сетке, то увидите, что содержимое текстовых полей автоматически изменилось, отображая содержимое привязанных столбцов уже из другой строки. Если вы измените содержимое одного из текстовых полей и перейдете в сетке на другую строку, то увидите, что введенное значение автоматически изменило содержимое в источника данных и обновило отображение соответствующей ячейки в сетке. Вот это да! Как же это сработало? Мы не написали ни строчки кода, чтобы синхронизировать данные в сетке и в текстовых полях или для передачи изменений из пользовательского интерфейса в источник данных.

Что ж, это и есть часть «магии» механизмов сложной двунаправленной привязки данных в Windows Forms. Как упоминалось ранее, когда вы настраиваете простую привязку данных между свойством элемента управления и элементом данных в составе источника данных, свойство элемента управления отображает текущее значение выбранного элемента данных. Любые изменения, внесенные в привязанное свойство элемента управления (свойство Text в случае текстового поля), автоматически передаются в источник данных, как только фокус ввода покидает элемент управления. Для сетки все это устроено немного сложнее, но и здесь применим тот же принцип, если рассматривать каждую ячейку сетки в качестве отдельного элемента управления.

Но как элементы управления определяют, какой элемент в коллекции является текущим? Мы обсудим это позднее в этой главе, но вкратце дело обстоит следующим образом: для каждого списочного источника данных нечто с именем CurrencyManager отслеживает, какой элемент коллекции является текущим. Привязанным элементам управления известен их CurrencyManager, и они могут подписаться на событие, генерируемое им при смене текущего элемента. Когда происходит это извещающее событие, элемент управления обновляет свое представление данных в соответствии с содержимым нового текущего элемента.




Related news items:
Newer news items:
Older news items:

 
Главная Страница Контактная Информация Поиск по сайту Контактная Информация Поиск по сайту