Создание нескольких рядов строк в одном графике
Я пытался научить себя, как работать с диаграммами. Я нашел действительно хороший пример в Интернете. Эта программа просто генерирует случайное число каждую секунду и отображает его на графике.
Вот код для этого проекта:
XAML:
<Window x:Class="z_UpdatenChart.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:DV="clr-namespace:System.Windows.Controls.DataVisualization;assembly=System.Windows.Controls.DataVisualization.Toolkit"
Title="Window1" Height="700" Width="875"
xmlns:chartingToolkit="clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit">
<ScrollViewer HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Auto" Margin="0,-28,0,28">
<Grid Height="921" Background="DarkGray">
<chartingToolkit:Chart Name="lineChart" Title="Power Graph" Background="YellowGreen"
Foreground="DarkBlue" VerticalAlignment="Top" Margin="16,36,20,0" Height="432" IsEnabled="True">
<chartingToolkit:LineSeries Title="SolarCell"
ItemsSource="{Binding}"
DependentValueBinding="{Binding Path=Value}"
IndependentValueBinding="{Binding Path=Key}"
IsSelectionEnabled="True">
<chartingToolkit:LineSeries.IndependentAxis>
<chartingToolkit:LinearAxis Orientation="X" Title="Time (Sec)" Interval="1" />
</chartingToolkit:LineSeries.IndependentAxis>
<chartingToolkit:LineSeries.DependentRangeAxis>
<chartingToolkit:LinearAxis Orientation="Y" Title="Power (W)"/>
</chartingToolkit:LineSeries.DependentRangeAxis>
</chartingToolkit:LineSeries>
</chartingToolkit:Chart>
</Grid>
</ScrollViewer>
</Window>
C# -код:
using System;
using System.Collections.Generic;
using System.Windows;
using System.Collections.ObjectModel;
using System.Windows.Threading;
namespace z_UpdatenChart
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
ObservableCollection<KeyValuePair<double, double>> Power = new ObservableCollection<KeyValuePair<double, double>>();
public MainWindow()
{
InitializeComponent();
showLineChart();
DispatcherTimer timer = new DispatcherTimer();
timer.Interval = new TimeSpan(0, 0, 1); // per 1 seconds
timer.Tick += new EventHandler(timer_Tick);
timer.IsEnabled = true;
}
double i = 0;
Random random = new Random(DateTime.Now.Millisecond);
void timer_Tick(object sender, EventArgs e)
{
Power.Add(new KeyValuePair<double, double>(i, random.NextDouble()));
i += 1;
}
private void showLineChart()
{
lineChart.DataContext = Power;
}
}
}
Теперь я хотел бы добавить второй ряд строк в этот график (но с другим случайным значением).
Я знаю, как я могу сделать вторую серию строк в XAML, но мои знания привязки данных очень ограничены, поэтому я не знаю, как связать вторую ObservableCollection с серией строк.
Итак, мой вопрос: что будет лучшим способом для этого?
Нужно ли делать вторую привязку данных или я могу сделать массив из моей ObservableCollection?
Заранее спасибо.