当前位置: 首页 > news >正文

C#-WPF-控件-CartesianChart图表-线性3(LineSeries)-MVVM模式(封装数据绑定类)

知识点:


1. 数据绑定(数据绑定类 与 图形操作在同一个类中
2. X轴上显示点数(主类 中)
3. 添加随机值在图表中 (值针对Y轴值)
4. 清空图表
5. 图标titel显示

实例

图表控件绑定 SeriesCollectionA( Utils_ChartA.cs中)

<lvc:CartesianChart x:Name="LiveChartsA" Margin="10,146,185,51" Series="{Binding SeriesCollectionA}" Background="#FFF8FCFD" LegendLocation="Top"> </lvc:CartesianChart>

提示框绑定 MsgTips ( Utils_ChartA.cs中)

<Label Grid.Row="2" Grid.Column="0" FontSize="12" Background="#22FF0000" Content="{Binding MsgTips}" />

Utils_ChartA.cs(数据绑定类 与 图形操作在同一个类中)

using System; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; using System.Runtime.CompilerServices; using System.Text; using System.Windows.Media; using LiveCharts; using LiveCharts.Wpf; namespace Wpf_Math.MyUC_TestChart { public class Utils_ChartA : INotifyPropertyChanged { private string _msgTips; private SeriesCollection _seriesCollectionA; public Utils_ChartA() { // 在构造函数中初始化 _seriesCollectionA = new SeriesCollection(); } public string MsgTips { get => _msgTips; set { _msgTips = value; OnPropertyChanged(); } } public SeriesCollection SeriesCollectionA { get => _seriesCollectionA; set { if (_seriesCollectionA != value) { _seriesCollectionA = value; OnPropertyChanged(); } } } public void InitializeLiveCharts1(int XPonitLength) { if (XPonitLength <= 0) XPonitLength = 100; LineSeries myLineseries = new LineSeries() //实例化一条折线图 { Title = "M485-----电压测试图", //设置折线的标题 StrokeThickness = 1, // 设置折线粗细 LineSmoothness = 1, //折线图直线形式 0 or 1 PointGeometry = null, //折线图的无点样式 Stroke = Brushes.Red, // 红色线条 Values = new ChartValues<double>(new Double[XPonitLength]) //添加折线图的数据(X轴划分点数) }; SeriesCollectionA.Add(myLineseries); } public void addData(double n) { //通过Dispatcher在工作线程中更新窗体的UI元素 Debug.Write(n + "n \r\n"); SeriesCollectionA[0].Values.Add(n); SeriesCollectionA[0].Values.RemoveAt(0); } public void Clear(CartesianChart Chart) { Chart.Series.Clear(); //清空数据 InitializeLiveCharts1(0); //重复新初始化 } public event PropertyChangedEventHandler? PropertyChanged; protected void OnPropertyChanged([CallerMemberName] string name = null) => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name)); } }

主操作界面

using System; using System.Collections.Generic; using System.Diagnostics; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using LiveCharts; using LiveCharts.Wpf; namespace Wpf_Math.MyUC_TestChart { public partial class UC_ChartA : UserControl { int i; Utils_ChartA ChartA = new Utils_ChartA(); public UC_ChartA() { InitializeComponent(); this.DataContext = ChartA; ChartA.MsgTips = "提示:"; ChartA.InitializeLiveCharts1(0); } private void Button_Click(object sender, RoutedEventArgs e) { Button button = (Button)sender; ChartA.MsgTips = "你点击了--" + button.Content + " " + i++; //Debug.Write("你点击了--btn_calulate\"\r\n") switch (button.Name) { case "btn_addA": { ChartA.addData(new Random().Next(0, 30)); break; } case "btn_addB": { ChartA.addData(new Random().Next(80, 99)); break; } case "btn_clear":{ ChartA.Clear(LiveChartsA);break;} default: break; } } } }

将持续更新

http://www.jsqmd.com/news/1282754/

相关文章:

  • 数据结构算法 - 线性表的实现
  • SpringBoot+Vue家政服务平台开发与优化实践
  • 一文读懂|北京市新技术新产品首次进入市场
  • Adobe破解终极方案:GenP 3.0免费激活Adobe CC全系列工具指南
  • 广西培训+就业一站式服务,人力中介公司哪家靠谱点
  • 平衡流量计误差分析与多孔结构优化应用
  • 2026 年现阶段,沧州值得关注的民宿水泥假山定制厂家哪家靠谱,别再花大价钱搞民宿假山了,这玩意儿实用又出片还没那么多糟心事?-方诺水泥塑石假山 - 实业推荐官【官方】
  • 物联网安全芯片SE050与PIC32MZ的硬件集成实践
  • 2026甄选:常州金坛高压注浆堵漏专业公司实力解析 - 优企名品
  • 深圳福田无票据钻戒怎么出手?3家正规钻石回收门店实测,靠谱渠道这样选 - 大牌深度测评
  • 龙芯平台GitLab Runner Docker执行器配置实战:从镜像拉取到权限调优
  • python核心技术与实战(十五):合理利用assert
  • 2026 年现阶段聊城诚信的加厚气泡膜供应厂家哪个好,手机膜保值率翻倍的秘密 - 领域鉴赏官
  • 2026专业的ai建站机构哪个好,看看有没有你的心头好?
  • OpenHarmony 小鸿 AI 开发实战 10:CI1302 语音上行的 UART 帧、Opus 与 VAD
  • TPIC7710EVM评估模块:汽车电子EPB系统ASIC性能验证实战指南
  • Python自动化办公脚本开发指南
  • 做了11年的老牌排版工具,微信公众号排版新手也能轻松上手|企业新媒体选型报告 - 一串葡萄
  • 2026 还在找去水印工具?这两款免安装小程序用了三年没卸载 - 免费软件工具方法教程
  • 文档下载革命:从“看得见“到“拿得到“的35+平台终极解决方案
  • Golang的内存管理--学习笔记
  • 物联网设备电池寿命优化与NBM5100A应用解析
  • 线上报价20万到店变15万|上海浦东爱马仕包包回收五大高频套路一次拆穿+真实案例 - 讯息早知道
  • 破局与红利:深职大职业本科生和专科生的“同校不同质” - 博客湾
  • OpenHarmony 小鸿 AI 开发实战 11:WS63 Agent 与 WebSocket 协议状态机
  • java 练习02 - 判断数字奇偶性
  • 抖音批量下载工具终极指南:从零基础到高效管理的完整解决方案
  • 全体目光看过来,2026信誉好的ai网站建设平台推荐来啦!
  • 2026年亦城人才·人工智能超级个体(OPC)认定办事指南
  • 良固阀门(河南)有限公司——郑州弹簧安全阀领域值得信赖的源头厂家 - 优企名品