DataBoundBarChartControl в действии

в настоящем случае мы специфицировали

Как только вы начинаете разработку специализированным сценариям привязки данных такого рода, вы сразу покидаете область обобщенной привязки данных, которая поддерживается элементами управления Framework. В настоящем случае мы специфицировали, что данные, поддерживаемые элементом управления, должны иметь конкретную форму. Мы могли бы сделать это более явным, определив, возможно, специфический интерфейс, который должны поддерживать коллекции данных, скажем, IDecisionSupportDataList, А затем программировать, ориентируясь на экспонируемые им методы или свойства. Это было бы аналогично тому, как элементы управления Framework предполагают, что данные поддерживают интерфейс IList. Однако для многих сценариев это может быть стрельбой из пушки по воробьям, и вы захотите поддерживать лишь определенную форму данных, исходя из предположений о том, какого вида данные должны оказаться в привязанных к элементу управления источниках данных, и только соответствующим образом обрабатывать ошибки, если эти предположения не оправдываются. С таких позиций мы и подойдем к реализации этого примера. Определение отдельного интерфейса, описывающего определенного рода коллекцию данных, имело бы смысл, если вы собирались определить несколько элементов управления, которые делали бы одни и те же предположения относительно формы данных, но это возложило бы дополнительное бремя реализации нестандартного интерфейса на любые коллекции данных, которые вы хотите использовать с вашими элементами управления, что ограничило бы их полезность. Итак, давайте разработаем элемент управления, который выглядит подобно показанному на рис. 8.9. Он должен обеспечивать данные, динамически управляющие представлением, моделируя поддержку привязки данных элементами управления Windows Forms из Framework. Кроме того, он должен поддерживать и реляционные источники данных, такие, как набор данных, и коллекции специальных рабочих объектов. Предполагается, что коллекции данных, предоставляемые в форме источника и компонента данных, имеют единственный столбец, который идентифицирует строку и будет использоваться в качестве ее метки. Ожидается также, что коллекция будет иметь произвольное число дополнительных столбцов или свойств численных типов, которые будут использоваться для генерации столбиков вместе с их значениями и именами свойств.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *