C # Обновление графика с привязкой к нему очереди - PullRequest
0 голосов
/ 30 сентября 2018

Я хочу сделать график в реальном времени, чтобы построить диаграмму входящих сигналов.Поскольку я хочу отображать только несколько новейших данных, я подумал об использовании очереди и связал ее с серией.Однако, когда я обновляю свою очередь, диаграмма не обновляется, и я не знаю почему.

Вот упрощенная версия моего кода (она должна «сдвигать» очередь и обновлять диаграмму для каждогонажмите):

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();
        }
    }
}

Есть идеи, в чем может быть проблема?

Заранее спасибо!

1 Ответ

0 голосов
/ 30 сентября 2018

Вы должны брать таймер и привязывать график каждый раз, когда происходит тик.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...