using OxyPlot; using OxyPlot.Series; using System.Collections.Generic; namespace 帆板仪表盘 { public class MainViewModel : Observable { public PlotModel model=new PlotModel("Waiting Connect", ""); // public List<PlotModel> models = new List<PlotModel>(); // LineSeries series1 = new LineSeries("Series 1") { MarkerType = MarkerType.Circle }; private List<DataPoint> lastDPs = new List<DataPoint>(); //public List<PlotModel> Models //{ // get { return models; } // set // { // models = value; // RaisePropertyChanged(() => Models); // } //} public MainViewModel() { // Create the plot model // var tmp = new PlotModel("Simple example", "using OxyPlot"); // Create two line series (markers are hidden by default) //Model.Series.Add(Series1); // Series1.Points.Add(new DataPoint(30, 8)); // Series1.Points.Add(new DataPoint(40, 18)); // var series2 = new LineSeries("Series 2") { MarkerType = MarkerType.Square }; // RaisePropertyChanged(() => Model); // Axes are created automatically if they are not defined // Set the Model property, the INotifyPropertyChanged event will make the WPF Plot control update its content } public void Add(double x, double y,string tA,string tB) { // Model = null; var tmp = new PlotModel(tA,tB); var series2 = new LineSeries() { MarkerType = MarkerType.None }; series2.StrokeThickness = 1; series2.MarkerType = MarkerType.Cross; lastDPs.Add(new DataPoint(x, y)); if (lastDPs.Count > 200) { lastDPs.RemoveRange(0, lastDPs.Count - 200); } foreach (DataPoint item in lastDPs) { series2.Points.Add(item); } series2.Points.Add(new DataPoint(x, y)); // Model.Series.Add(series2); tmp.Series.Add(series2); Model = tmp; // models.Add(Model); // Add the series to the plot model #region MyRegion // var tmp = new PlotModel("Simple example", "using OxyPlot"); //// Create two line series (markers are hidden by default) //var series1 = new LineSeries("Series 1") { MarkerType = MarkerType.Circle }; //series1.Points.Add(new DataPoint(0, 0)); //series1.Points.Add(new DataPoint(10, 18)); //series1.Points.Add(new DataPoint(20, 12)); //series1.Points.Add(new DataPoint(30, 8)); //series1.Points.Add(new DataPoint(40, 15)); //var series2 = new LineSeries("Series 2") { MarkerType = MarkerType.Square }; //series2.Points.Add(new DataPoint(0, 4)); //series2.Points.Add(new DataPoint(10, 12)); //series2.Points.Add(new DataPoint(20, 16)); //series2.Points.Add(new DataPoint(30, 25)); //series2.Points.Add(new DataPoint(40, 5)); //// Add the series to the plot model //tmp.Series.Add(series1); //tmp.Series.Add(series2); //// Axes are created automatically if they are not defined //// Set the Model property, the INotifyPropertyChanged event will make the WPF Plot control update its content //Model = tmp; #endregion } public PlotModel Model { get { return model; } set { // bool f = ((model.Series[0]) as LineSeries)!=null?true:false; if (model != value) { model = value; RaisePropertyChanged(() => Model); } } } //public LineSeries Series1 //{ // get { return series1; } // set { // if (series1 != value) // { // series1 = value; // RaisePropertyChanged(() => Model); // } // } //} } }