首页 > 解决方案 > C# 更新带有绑定到它的队列的绘图图表

问题描述

我想制作一个实时运行图表来绘制传入信号的图表。因为我只想显示一些最新的数据,所以我想到了使用队列并将其绑定到系列。但是,当我更新队列时,图表没有更新,我不知道为什么。

这是我的代码的简化版本(它应该“移动”队列并为每次点击刷新图表):

using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;

namespace PlotShiftExample
{
    public partial class Form1 : Form
    {
        Queue<double> dataSeries1;
        int xWindowSize = 5;
        double counter = 0;

        public Form1()
        {
            InitializeComponent();
            dataSeries1 = new Queue<double>();

            chart1.Series.Clear();
            Series series1 = new Series
            {
                Name = "Series1",
                Color = System.Drawing.Color.DarkRed,
                IsVisibleInLegend = false,
                IsXValueIndexed = true,
                ChartType = SeriesChartType.Spline
            };

            chart1.Series.Add(series1);
            chart1.Series["Series1"].Points.DataBindY(dataSeries1);
        }

        private void button1_Click(object sender, EventArgs e)
        {
            dataSeries1.Enqueue(counter++);

            if (dataSeries1.Count > xWindowSize)
                dataSeries1.Dequeue();

            chart1.DataBind();
        }
    }
}

知道可能是什么问题吗?

提前致谢!

标签: c#plotdata-bindingchartsqueue

解决方案


每次刻度事件时,您都应该使用计时器和绑定图表。


推荐阅读