如何使用按钮根据数组值更新 livechart 中的图表?

How can I update the chart in livechart based on array value with a button?

我目前正在使用 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);
    }

getvalueforgraphing() 是用插入的新值更新数组的函数。 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;

    }