我目前正在使用Livechart,笛卡尔图表用于我的WPF c#程序,基于livecharts网站中给出的示例。我已经成功地将数组的值表示在笛卡尔坐标图上。
下面是xaml代码
<Grid Margin="0,0,219.4,-0.2">
<lvc:CartesianChart x:Name="cartchartdb" Series="{Binding SeriesCollection}" LegendLocation="Right" >
<lvc:CartesianChart.AxisY>
<lvc:Axis Title="Value" LabelFormatter="{Binding YFormatter}"></lvc:Axis>
</lvc:CartesianChart.AxisY>
<lvc:CartesianChart.AxisX>
<lvc:Axis Title="Date" Labels="{Binding Labels}"></lvc:Axis>
</lvc:CartesianChart.AxisX>
</lvc:CartesianChart>
</Grid>
下面是代码。用于Xaml.cs
private void cartchartinit()
{
SeriesCollection = new SeriesCollection
{
new LineSeries
{
Title = "Avg Speed (KM/H)",
Values = arrayspeedavg.AsChartValues()
},
new LineSeries
{
Title = "Avg Gap (Metre)",
Values = arraygapavg.AsChartValues()
},
};
Labels = datearray;
YFormatter = value => value.ToString("");
DataContext = this;
cartchartdb.Update(true);
}
现在的问题是,当在数组中插入新值时,我无法再次更新图表。*编辑:只有重新启动程序,图表才会更新。
我目前的想法是放一个按钮来刷新图表,但它没有更新。
按钮更新代码:
private void refreshcart_Click(object sender, RoutedEventArgs e)
{
getvalueforgraphing();
cartchartdb.Update(true);
}
CCD_ 1是用插入的新值来更新回阵列的函数。cartchartdb
是lvc的名称。CartesianChart工具。
希望有人能帮我。
好的,nvm拿到了!
基本上我的解决方法如下所示
private void refreshcart_Click(object sender, RoutedEventArgs e)
{
getvalueforgraphing();
// SeriesCollection[0].Values.Clear();
SeriesCollection[0].Values = arrayspeedavg.AsChartValues();
SeriesCollection[1].Values = arraygapavg.AsChartValues();
Labels = datearray;
}