You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
1.7 KiB
67 lines
1.7 KiB
using CommunityToolkit.Mvvm.ComponentModel;
|
|
using CommunityToolkit.Mvvm.Input;
|
|
using OxyPlot.Series;
|
|
using OxyPlot;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Timers;
|
|
using System.Windows;
|
|
|
|
namespace GettingStarted.ViewModels
|
|
{
|
|
internal partial class MainViewModel3 : ObservableObject
|
|
{
|
|
[ObservableProperty]
|
|
private PlotModel _myModel;
|
|
|
|
|
|
[ObservableProperty]
|
|
private LineSeries _lineSeries;
|
|
|
|
|
|
public MainViewModel3()
|
|
{
|
|
MyModel = new PlotModel() { Title = "Getting Started with RT Plot" };
|
|
LineSeries = new LineSeries() { Title = "Dynamic Data" };
|
|
|
|
MyModel.Series.Add(LineSeries);
|
|
|
|
_timer = new System.Timers.Timer();
|
|
_timer.Interval = 50;
|
|
_timer.Elapsed -= _timer_Elapsed;
|
|
_timer.Elapsed += _timer_Elapsed;
|
|
}
|
|
|
|
private int _lastX = 0;
|
|
private void _timer_Elapsed(object? sender, ElapsedEventArgs e)
|
|
{
|
|
Application.Current.Dispatcher.Invoke(() =>
|
|
{
|
|
LineSeries.Points.Add(new DataPoint(_lastX, Math.Sin(_lastX * 0.1)));
|
|
MyModel.InvalidatePlot(true);
|
|
_lastX++;
|
|
});
|
|
}
|
|
|
|
private bool _isTimerStarted = false;
|
|
private System.Timers.Timer _timer;
|
|
|
|
[RelayCommand]
|
|
private void FlipTimer()
|
|
{
|
|
if (!_isTimerStarted)
|
|
{
|
|
_timer.Start();
|
|
_isTimerStarted = true;
|
|
}
|
|
else
|
|
{
|
|
_timer.Stop();
|
|
_isTimerStarted = false;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|