一起搭WPF架构之livechart的MVVM使用介绍

一起搭WPF架构之livechart使用介绍


前言

简单的架构搭建已经快接近尾声了,考虑设计使用图表的形式将SQLite数据库中的数据展示出来。前期已经介绍了livechart的安装,今天就详细介绍一下livechart的使用!


Model

新建Model文件,定义数据写入的对象。而这里需要注意,livechart有对应的用于存储图表数据的类,可以使用ChartValues进行定义。

csharp 复制代码
public ChartValues<double> Num { get; set; } = new ChartValues<double>();

ViewModel

新建ViewModel文件,在这里新建一个Model实例,这里的实例可以调用到刚刚Model中定义的对象Num。

csharp 复制代码
public Model Datamodel { get; set; } = new Model();

除了这个定义,我们在这里对Datamodel需要赋值,这里简单使用随机变量进行演示。利用随机变量给Num赋值。

csharp 复制代码
Random random = new Random();
Datamodel.Num.Add(random.Next(0, 100));

View

界面设计

csharp 复制代码
<lvc:CartesianChart>
    <lvc:CartesianChart.Series>
        <lvc:LineSeries Values="{Binding Datamodel.Num}" />
    </lvc:CartesianChart.Series>
</lvc:CartesianChart>

这里需要注意的使用,绑定的层级问题,如果使用ViewModel的形式,界面实例化ViewModel,那么界面的数据来源就是ViewModel的实例定义,也就是我们在ViewModel实例化使用的Datamodel。因此界面上直接使用到Datamodel这一层,而不是ViewModel这一层。这里决定着实际数据绑定的层级,会影响数据显示!

界面后端

csharp 复制代码
this.DataContext = new DataViewModel();

这里是给界面进行数据输入的来源,很多时候忘记这一步,界面就缺少数据来源,不会实现数据绑定!

效果

这里的数据与随机生成数据的程序有一点点的出入,我在ViewModel中读取了SQLite数据库表中的价格信息,通过界面按钮切换后,会主动更新折线图的数据。

在ViewModel中可以将Datamodel.Num的数据来源替换成读取SQLite数据库中表的数据,就可以完成价格数据的展现!


总结

以上就是今天要讲的内容,本文仅仅简单介绍了livechart的使用,以及我是如何通过MVVM的形式将数据绑定到折线图中的,也记录一下自己的使用过程!

相关推荐
IALab-检测行业AI报告生成8 小时前
IACheck AI 报告审核助手:整体架构与详细结构说明
大数据·人工智能·架构·ai报告审核
无心水15 小时前
【任务调度:数据库锁 + 线程池实战】1、多节点抢任务?SELECT FOR UPDATE SKIP LOCKED 才是真正的无锁调度神器
人工智能·分布式·后端·微服务·架构
专注前端30年17 小时前
【Java微服务架构】Spring Cloud Alibaba全家桶实战:Nacos+Sentinel+Seata+分布式事务
java·微服务·架构
heimeiyingwang18 小时前
企业非结构化数据的 AI 处理与价值挖掘
大数据·数据库·人工智能·机器学习·架构
跟Tom学编程—一对一编程辅导19 小时前
基于 Java 的 SSM 架构电子商城项目毕业设计课题选型指导文档|名企高级开发工程师全程一对一指导(含详细文档+源码+部署)
java·架构·毕业设计·课程设计
tod11319 小时前
Redis 主从复制与高可用架构:从原理到生产实践
数据库·redis·架构
RoyLin19 小时前
Rust 编写的 40MB 大小 MicroVM 运行时,完美替代 Docker 作为 AI Agent Sandbox
后端·架构·rust
码云数智-大飞21 小时前
微前端架构落地实战:qiankun vs Module Federation 2026 深度对比与选型指南
前端·架构
闲人编程21 小时前
定时任务与周期性调度
分布式·python·wpf·调度·cron·定时人物·周期性
玩具猴_wjh21 小时前
三级缓存架构
缓存·架构