0

我目前正在为我的 WPF c# 程序使用 Livechart,笛卡尔图表,基于 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);
    }

getvalueforgraphing()是使用插入的新值更新数组的函数。这cartchartdb是 lvc.CartesianChart 工具的名称。

希望有人可以帮助我。

4

1 回答 1

0

好的,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;

    }
于 2020-08-21T07:09:11.347 回答