我一直在努力教自己如何使用图表。我在网上发现了一个很好的例子。该程序每秒只生成一个随机数,并将其显示在图表上。
以下是此项目的代码:
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#-code:
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;
}
}
}
现在我想在此图表中添加第二个lineserie(但具有不同的随机值)。
我知道如何在XAML中制作第二个lineseries但我对数据绑定的了解非常有限,所以我不知道如何将第二个ObservableCollection与lineserie联系起来。
所以我的问题是:最好的方法是什么?
我是否需要进行第二次数据绑定,还是可以从ObservableCollection中创建数组?
提前致谢。