How to refresh oxyplot plot when data changes

前端 未结 7 1479
予麋鹿
予麋鹿 2021-02-07 02:10

\"GUI

Oxyplot graphs 13 points which are derived from the 6 user input text boxes. The values in

7条回答
  •  南旧
    南旧 (楼主)
    2021-02-07 02:53

    Another two years later... this solution works for me, because I have no oxyplot models and I´m missing some of the named functions from above.

    code behind:

    public partial class LineChart : UserControl
    {
        public LineChart()
        {
            InitializeComponent();
    
            DataContext = this;
            myChart.Title = "hier könnte Ihr Text stehen!";
    
            this.Points = new List();
            randomPoints();
        }
    
    
        public IList Points { get; private set; }
    
        public void randomPoints()
        {
            Random rd = new Random();
            String myText = "";
    
            int anz = rd.Next(30, 60);
    
            for (int i = 0; i < anz; i++)
                myText += i + "," + rd.Next(0, 99) + ";";
    
            myText = myText.Substring(0, myText.Length - 1);
            String[] splitText = myText.Split(';');
    
            for (int i = 0; i < splitText.Length; i++)
            {
                String[] tmp = splitText[i].Split(',');
                Points.Add(new DataPoint(Double.Parse(tmp[0].Trim()), Double.Parse(tmp[1].Trim())));
            }
    
            while (Points.Count > anz)
                Points.RemoveAt(0);
    
            myChart.InvalidatePlot(true);
        }
    }
    

    To update your data don't exchange the whole IList, rather add some new DataPoints to it and remove old ones at position 0.

    XAML:

    
    
        
            
                
    
                
            
        
        

    important are the x:Name="myChart" and ItemsSource="{Binding Points}"

    I hope this is useful for someone out there

提交回复
热议问题