Привязка данныx (data binding) в C#

Mono

Привязка данных к интерфейсу пользователя (GUI) – один из важнейших аспектов в разработке прикладного ПО, активно взаимодействующего с пользователем. Этим вопросом и займемся..

Да... совсем забыл сказать: рассматриваем привязку данных в WinForms. Хоть эта библиотека GUI и устаревает, принципы заложенные в реализации никуда не денутся. Приступим...

В .NET механизм привязки реализован с разделением на три уровня. Чем-то такое разделение напоминает паттерн MVC (model, view, controller - модель, представление, контроллер). Эта парадигма предполагает отделение пользовательского интерфейса от данных третьим слоем, названным контроллером. Контроллер взаимодейтсвует с пользователем через представления и определяет, какие данные нужно извлечь и как их отобразить.

В привязке данных к GUI в WinForms есть схожие моменты. У каждого элемента управления (наследники класса Control) есть свойство DataBindings – коллекция экземпляров класса Binding, привязок к данным. Каждый экзмепляр Binding обладает, как минимум, тремя свойствами: источник данных (data source), свойство (поле) истоника данных и привязываемое свойство элемента управления (например надпись на кнопке). Источником данных может служить любой объект (то есть роль контроллера в данном случае выполняет класс Binding), но привязка для обычного объекта будет односторонней, так как для двусторонней синхронизации объект должен оповестить элемент управления.

Представим более сложную ситуацию: один элемент управления связан со многими объектами данных. Тогда нам нужна ещё и навигация по коллекции объектов. Для решения такой задачи подходит класс BindingSource. Он является своеобразным контроллером между элементом управления и данными. Контролирует навигацию по коллекции объектов и сообщает элементу управления о добавлении и удалении объектов из коллекции. BindingSource привязывается к данным через свойство DataSource. Источником данных может служить коллекция, массив, таблица (DataTable) или DataSet. Можно создать и свой источник данных с нуля, но для этого придется потрудиться:)

Прикрепленный файлРазмер
DataBinding.zip12.22 кб
вернуться назад

Комментарии

Привязка данныx (data binding) в C#

Статья просто изумительная, спасибо.

исправил

теперь архив скачивается нормально