Как связать ObservableCollection <LineSeries>с диаграммой - PullRequest
2 голосов
/ 20 декабря 2010

У меня небольшая проблема с привязкой диаграммы. Можно ли иметь динамическое число серий для линейного графика набора инструментов WPF?

Я нашел много примеров, как это сделать вручную.

Например, если у меня есть что-то вроде:

    <chartingToolkit:Chart Grid.ColumnSpan="4" Grid.Row="3" HorizontalAlignment="Stretch" 
VerticalAlignment="Stretch" Name="chart_Distribution" Title="Chart Title">

И модель как:

public class Test : BaseViewModel
{
    private readonly ObservableCollection<LineSeries>  _lineSeries = new ObservableCollection<LineSeries>();                   
    public ObservableCollection<LineSeries> LineSeries
        {
            get { return _lineSeries; }
        }
    private void Test()
        {
            var collection = new ObservableCollection<RequestsInProcess>();
            var collection2 = new ObservableCollection<RequestsInProcess>();

            collection.Add(new RequestsInProcess(0, 4));
            collection.Add(new RequestsInProcess(1, 1));
            collection.Add(new RequestsInProcess(2, 4));
            collection.Add(new RequestsInProcess(3, 3));

            collection2.Add(new RequestsInProcess(0, 3));
            collection2.Add(new RequestsInProcess(1, 2));
            collection2.Add(new RequestsInProcess(2, 2));
            collection2.Add(new RequestsInProcess(3, 1));

            var lineseries1 = new LineSeries();
            lineseries1.IndependentValuePath = "AmountOfRequests";
            lineseries1.DependentValuePath = "Time";
            lineseries1.Title = "Line series1";
            lineseries1.ItemsSource = collection;
            Charts.Add(lineseries1);

            var lineseries2 = new LineSeries();
            lineseries2.IndependentValuePath = "AmountOfRequests";
            lineseries2.DependentValuePath = "Time";
            lineseries2.Title = "Line series2";
            lineseries2.ItemsSource = collection2;
            Charts.Add(lineseries2);

            collection2.Add(new RequestsInProcess(4, 4));
            collection.Add(new RequestsInProcess(4, 4));

        }
}

Как я могу привязать свою диаграмму к ObservableCollection? Возможно ли это?

1 Ответ

3 голосов
/ 20 декабря 2010

Есть хорошее решение для этого в следующем сообщении в блоге:

http://jmorrill.hjtcentral.com/Home/tabid/428/EntryId/351/Silverlight-Charts-Binding-multiple-Series.aspx

Колин Э.

...