Графики нескольких серий с WPFtoolkit - PullRequest
8 голосов
/ 15 февраля 2011

Кто-нибудь из вас знает способ создания диаграмм для нескольких серий с помощью wpftoolkit? В двух словах, я хочу иметь больше зависимых значений для одного и того же независимого значения. До сих пор я не мог найти какой-либо всеобъемлющий механизм, чтобы заставить это работать. Любая помощь очень ценится.

Ответы [ 4 ]

21 голосов
/ 15 мая 2012

Если вам нужен график с двумя LineSeries

enter image description here

У вас может быть 2 разных списка в вашем файле .cs с данными:

List<KeyValuePair<DateTime, int>> llistaGastats = new List<KeyValuePair<DateTime, int>>();
List<KeyValuePair<DateTime, int>> llistaPreu = new List<KeyValuePair<DateTime, int>>();

Затем вам нужно создать еще один список, чтобы сгруппировать эти два списка:

var dataSourceList = new List<List<KeyValuePair<DateTime, int>>>();
dataSourceList.Add(llistaGastats);
dataSourceList.Add(llistaPreu);

И присвоить его DataContext

lineChart.DataContext = dataSourceList;

В вашем файле .xaml вы должны создать Chart с двумя LineSeries и получить значение каждой строки, используя поле ItemSource.

Вот .xaml:

<chartingToolkit:Chart Name="lineChart"
                                       Title="Consum KW" 
                                       VerticalAlignment="Top" 
                                       Margin="0,58,58,0" 
                                       Height="382"
                                       Grid.Column="1">
                <chartingToolkit:LineSeries Name="KWG"
                                                Title="KW Gastats"  
                                                DependentValuePath="Value" 
                                                IndependentValuePath="Key"
                                                ItemsSource="{Binding [0]}"
                                                IsSelectionEnabled="True"/>
                <chartingToolkit:LineSeries Name="KWP" 
                                                Title="Preu KW"  
                                                DependentValuePath="Value" 
                                                IndependentValuePath="Key"
                                                ItemsSource="{Binding [1]}"
                                                IsSelectionEnabled="True" />
            </chartingToolkit:Chart>

ItemsSource="{Binding [0]}" Связывает первый элемент в списке, назначенный DataContext. ItemsSource="{Binding [1]}" Связывает второй

6 голосов
/ 15 февраля 2011

Возможно, вы захотите рассмотреть альтернативы , из прошлого опыта компоненты построения диаграмм в WPF Toolkit чрезвычайно жесткие и их сложно расширять. У меня также были многочисленные проблемы с ошибками в наборе инструментов, и активная разработка, кажется, полностью остановилась. Есть несколько очень хороших бесплатных альтернатив, которые стоит рассмотреть.

2 голосов
/ 16 апреля 2012

У Beat Kiener есть отличная статья о Диаграммах многосерийных данных . В нем он реализует свой собственный класс MultiChart, полученный из Chart.

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

1 голос
/ 03 марта 2012

создайте таблицу данных со столбцом для каждой серии, добавьте пять рядов столбцов (в случае диаграммы столбцов и пять рядов) к диаграмме, с DependentValueBinding для каждого имени столбца, установите для ItemsSource значение datatable (ItemsSource одинаково для каждого столбца серия).

Дайте мне знать, если вы хотите, чтобы я добавил код.

...