Привязка к объектному источнику данных

Один из наиболее гибких механизмов заполнения диаграммы предусматривает использование ObjectDataSource, когда определяется объект, который может получать данные, а в качестве моста между логикой извлечения данных в коде и элементом управления Chart служит ObjectDataSource. Класс извлечения должен быть создан в папке App_Code. В следующем примере возвращаются простые статические данные:

public class MyObjectDataSource

{

public class DataItem

{

public string Name { get; set; }

public double Popularity { get; set; }

}

public DataItem[] GetData()

{

return new DataItem[] {

new DataItem() {Name = "Ватрушка", Popularity = 30},

new DataItem() {Name = "Мороженное", Popularity = 30},

new DataItem() {Name = "Орешки", Popularity = 20},

new DataItem() {Name = "Шоколадка", Popularity = 20}

};

}

}

В этом примере определен класс DataItem, имеющий свойства Name и Popularity. Метод GetData() генерирует и возвращает массив элементов DataItem. Эта методика привязки будет также работать с методами, которые возвращают объекты DataSet и DataTable. Гибкость использования ObjectDataSource обусловлена тем, что средства, определяющие источник данных, абстрагируются от диаграммы, что позволяет свободно изменять бизнес-логику. Для работы с данными создается новый экземпляр ObjectDataSource с передачей конструктору имени созданного класса извлечения и имени метода, который должен быть вызван для получения данных. В рассматриваемом примере ими соответственно являются MyObjectDataSource и GetData():

protected void Page_Load(object sender, EventArgs e)

{

// Форматировать диаграмму

Chart1.BackColor = Color.Gray;

Chart1.BackSecondaryColor = Color.WhiteSmoke;

Chart1.BackGradientStyle = GradientStyle.DiagonalRight;

Chart1.BorderlineDashStyle = ChartDashStyle.Solid;

Chart1.BorderlineColor = Color.Gray;

Chart1.BorderSkin.SkinStyle = BorderSkinStyle.Emboss;

// Форматировать область диаграммы

Chart1.ChartAreas[0].BackColor = Color.Wheat;

// Добавить и форматировать заголовок

Chart1.Titles.Add("ASP.NET Chart");

Chart1.Titles[0].Font = new Font("Utopia", 16);

Chart1.Series.Add(new Series("Default")

{

ChartType = SeriesChartType.Pie

});

// Создать объектный источник данных

ObjectDataSource ds = new ObjectDataSource("MyObjectDataSource", "GetData");

// Привязать источник к диаграмме

Chart1.DataSource = ds;

Chart1.Series[0].XValueMember = "Name";

Chart1.Series[0].YValueMembers = "Popularity";

}

После создания ObjectDataSource привязывается к элементу управления через свойство Chart.DataSource. На этот момент источник данных действует в качестве моста между классом извлечения и диаграммой, но диаграмма не знает, что делать с данными, которые доступны. Эта информация предоставляется с использованием свойств Series. XValueMember и Series. YValueMember, которые позволяют определять, какие члены объекта ObjectDataSource должны применяться для осей X и Y. Диаграмма, созданная этим методом, показана на рисунке ниже:

Первое приложение с применением Microsoft Chart Control

30 Март 2012 Taras Написать комментарий К комментариям

В предыдущей статье я дал общие понятия о функциональности и назначении библиотеки MS Chart Control. В этой статье, как и обещал, приступим к практическим занятиям и построим свой первый график.

Для построения графика сперва установите Microsoft Visual C# 2010 Express (бесплатная версия) вместе с платформой NET Framework 4.0 – по умолчанию содержит библиотеку MS Chart Control. Скачать среду разработки вместе с платформой можно с официального сайта здесь.

Надеюсь, дорогой читатель знаком с азами работы в среде VS, поэтому не буду расписывать элементарные вещи, нежели вопросы все – же возникнут, задавайте их в комментариях, я постараюсь ответить. После установки, запускаем VS C#, создаем новое приложение Windows Forms. Находим на «Панели элементов» вкладку «Данные», в ее списке имеется элемент управления графиками Chart, перетаскиваем его на нашу форму.

На компоненте Chart, нажимаем правой кнопкой мыши и выбираем из выпадающего контекстного меню пункт «Перейти к коду», перед вами появится исходный код приложения, который мы будем усовершенствовать, с целью построения линейного графика MS Chart Control.

Для подключения библиотеки классов MS Chart Control к нашему приложению, также необходимо добавить следующую директиву:

using System.Windows.Forms.DataVisualization.Charting;

Чтобы нарисовать график, осталось только добавить данные, по которым необходимо его построить. Ну и затронуть некоторые параметры отображения, такие как: тип диаграммы, цвет, метки.

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Windows.Forms.DataVisualization.Charting; namespace WindowsFormsApplication1 { public partial class Form1: Form { public Form1() { InitializeComponent(); /*Метод AddXY - позволяет добавить точку с двумя заданными координатами Метод Add - принимает одно значение, которое считается равным обеим коорд. Метод AddY - также принимает одну координату Y, а коорд X - автоматически получает значение равное шагу сетки графика*/ chart1.Series["Series1"].Points.AddXY(1, 3); chart1.Series["Series1"].Points.AddXY(2, 5); chart1.Series["Series1"].Points.AddXY(3, 7); chart1.Series["Series1"].Points.AddXY(4, 9); chart1.Series["Series1"].Points.AddXY(5, 11); chart1.Series["Series1"].Points.AddXY(6, 11); chart1.Series["Series1"].Points.AddXY(7.5, 9); //Настраиваем отображение кривой //Устанавливаем тип кривой Spline - округленная линия Line - грубая линия //и т.д. chart1.Series["Series1"].ChartType = SeriesChartType.Spline; //Устанавливает метки точек - цифры которые мы видим на графике //в местах перелома кривой chart1.Series["Series1"].IsValueShownAsLabel = true; } } }

При условии правильного набора кода по нажатию клавиши F5, программа должна запуститься и построить график, как на рисунке ниже.

MS Chart Control + Arduino

Кое-кто из вас наверное заметил отличие вашего графика от моего. Если нет, то присмотритесь внимательно, линии сетки моего графика имеют светло серый цвет, в то время, как у вас они черного. В коде я нигде не настраивал сетку, возникает вопрос, — каким образом?

Отвечаю, т.к. мы живем во времена объектно — ориентированного программирования, то не обязательно настраивать свойства каждого объекта прописывая их в ручную, иногда, достаточно выбрать элемент в конструкторе и через правое нажатие правой кнопки мыши на нем, зайти в свойства, откуда можно сделать большое количество изменений элемента, в нашем случае Chart’a.

Выбор типа линии MS Chart Control

На рисунке красными прямоугольниками выделены области на которые стоит обратить внимание. Этот пример — рисунок демонстрирует, как в несколько щелчков мыши можно поменять тип линии, что соответствует вот этой строчке кода

chart1.Series["Series1"].ChartType = SeriesChartType.Spline;

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: