Определение специальной структуры данных для отображения

в нашем случае b bindinglist

Данные, используемые элементом управления для отображения столбиков, содержатся в коллекции компонентов данных, созданной из обобщенного типа BindingList<T> . В нашем случае BindingList<T> Используется как контейнер для пар значений в экземплярах объекта ChartPair. Этот объект является простым контейнером для значения и метки, ассоциируемой с каждым столбиком: Этот класс опять же относится к деталям реализации элемента управления, поэтому он также помечается как Internal. Данные, используемые элементом управления, экспонируются через свойство интерфейса IList С именем Data, Так что они доступны для занесения и извлечения инкапсулирующим элементом управления. Имеется несколько других элементов-переменных, здесь не показанных, которые используются для хранения прямоугольников столбика и метки, а также максимальных и минимальных значений, используемых кодом рисования. Элемент управления имеет метод UpdateCoordinates, Вызываемый при необходимости для пересчета координат столбиков и меток в соответствии с данными, и переопределение метода Control .OnPaint, В котором и производится все отображение столбиков по координатам, вычисленным в Upda — TeCoordinates. Повторяю, что если вы захотите посмотреть детали того, как все это делается, обратитесь к загружаемому коду. Он не так уж и сложен; там всего около сотни строк. Как только элемент управления BarChartControl Закодирован и отлажен, вы можете создать привязанный к данным элемент управления, который создает и заполняет экземпляр BarChartControl Для каждой строки анализируемых данных. В этом примере я создал его как пользовательский элемент управления, чтобы он автоматически отображал полосу прокрутки на тот случай, когда данных оказывается больше, чем позволяет представить размер элемента управления.

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

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