【问题标题】:Reloading live charts chart only adds new data重新加载实时图表图表只会添加新数据
【发布时间】:2019-03-19 15:28:24
【问题描述】:

我在我的应用程序中使用实时图表作为帕累托图。我做了一个 SeriesCollection。我通过以下方式从存储过程中加载它:

public void LoadChart()
{
    List<DataTops> dataTops = GetTops();
    ChartValues<int> Pareto = new ChartValues<int>();
    List<string> timevalues = new List<string>();
    int selected = ComboSelect();
    IDLables = new List<string>();
    foreach (var item in dataTops)
    {
        values.Add(item.Total);
        Pareto.Add(item.Running);
        IDLables.Add((item.W) + "." + (item.B));
    }

    TopAlarms = new SeriesCollection
    {
        new ColumnSeries
        {
            Title = "Total",
            Values =values,
            DataLabels = false,
            ScalesYAt = 0,
        },

        new LineSeries
        {
            Title = "%",
            Values = Pareto,
            ScalesYAt = 1,
            PointGeometrySize = 0
        }
    };

public List<DataTops> GetTops()
    {
        int selected = ComboSelect();

        DataSet Ds = new DataSet();
        DataSetTableAdapters.TimePerID_TopTableAdapter TimerTopta = new DataSetTableAdapters.TimePerID_TopTableAdapter();
        TimerTopta.Fill(Ds.TimePerID_Top, selected);
        List<DataTops> Tops = new List<DataTops>();
        foreach (DataRow row in Ds.Tables["TimePerID_Top"].Rows)
        {
            Tops.Add(new DataTops() { Total = (int)row["Total"], W = (int)row["W"], B = (int)row["B"], Amount = (int)row["Amount"], Running = (int)row["Running"] });
        }
        return Tops;
    }

我有一个组合框来选择要显示的金额(数据集中的selected)和一个用于更新图表的按钮。图表工作正常,但每当我按下更新按钮时,它只会在现有数据后面添加新数据。

加载时实时图表不会自动清除图表集合数据,所以我这样做了:

private void UpdateChart_Click(object sender, RoutedEventArgs e)
    {
        if (TopAlarms != null)
        {
            TopAlarms.Clear();

        }
        LoadChart();
    }

但它仍然不会清除并重新加载图表。按下按钮时如何重新加载图表以便显示新选择的数据量?

【问题讨论】:

    标签: c# loading livecharts


    【解决方案1】:

    经过一些测试和研究,我有以下清除图表的解决方案:

    try
    {
        if (TopAlarms != null)
        {
            TopAlarms.Clear();
    
        }
    }
    catch { }
    

    这可能不是最好的解决方案,但它对我有用。

    【讨论】:

      猜你喜欢
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多