livecharts 装版本8
1 datagridview传datatable livecharts传chartvalues<ObservablePoint>
datatable包含 Rows(内容是object【】) 和 Columns 字符串
chartvalues包含series线 AxisX x轴刻度设置 AxisY y轴刻度设置
动态刷表
using LiveCharts;
using LiveCharts.Defaults;
using LiveCharts.Wpf;
using System;
using System.Data;
using System.Windows.Forms;
using winform1.SQL;namespace winform1
{public partial class Form1 : Form{private MakePage MP;private SqlSugarHelper helper;private DataTable dt;private Random random;// 改用 ObservablePoint 存储 X-Y 数据public ChartValues<ObservablePoint> TimeValues { get; set; }public Form1(){InitializeComponent();MP = new MakePage();TimeValues = new ChartValues<ObservablePoint>();// 初始化定时器cartesianChart1.LegendLocation = LegendLocation.Right;Timer timer1 = new Timer();timer1.Tick += timer1_Tick;timer1.Interval = 1000; // 1秒刷新一次timer1.Start();}private void Form1_Load(object sender, EventArgs e){dataGridView1.DataSource = InitDt();random = new Random();// 配置折线图cartesianChart1.Series.Add(new LineSeries{Values = TimeValues,StrokeThickness = 4,PointGeometrySize = 10,DataLabels = true,Title = "模组实时温度",Fill = System.Windows.Media.Brushes.Yellow,Stroke = System.Windows.Media.Brushes.Red,});// 配置X轴(时间轴)cartesianChart1.AxisX.Add(new Axis{Title = "时间",LabelFormatter = value => new DateTime((long)value).ToString("HH:mm:ss"), // 时间格式化Separator = new Separator { Step = TimeSpan.FromSeconds(5).Ticks } // 每5秒一个刻度});// 配置Y轴cartesianChart1.AxisY.Add(new Axis{Title = "温度 (°C)",MinValue = 15,MaxValue = 35});// 添加初始数据AddNewDataPoint();}private void timer1_Tick(object sender, EventArgs e){AddNewDataPoint();// 限制数据点数量(保留最近20个)if (TimeValues.Count > 20){TimeValues.RemoveAt(0);}}private void AddNewDataPoint(){// X = 当前时间(DateTime转为Ticks长整型)// Y = 随机温度值TimeValues.Add(new ObservablePoint(DateTime.Now.Ticks,random.Next(20, 25)));}private DataTable InitDt(){helper = new SqlSugarHelper("datasource=E:\\sqlite-dll-win-x64-3490200\\winformtest.db", SqlSugar.DbType.Sqlite);dt = new DataTable("个人简历");dt.Columns.Add("ID", typeof(int));dt.Columns.Add("姓名", typeof(string));MP.refresh(helper, dt);return dt;}//下面为表格datagridviewprivate void simpleButton1_Click(object sender, EventArgs e){MP.PageIndex++;MP.refresh(helper, dt);}}
}
静态图