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

devtools/2024/10/21 5:14:33/

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

  • 前言
  • Model
  • ViewModel
  • View
    • 界面设计
    • 界面后端
  • 效果
  • 总结


前言

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


Model

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

public ChartValues<double> Num { get; set; } = new ChartValues<double>();

ViewModel

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

public Model Datamodel { get; set; } = new Model();

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

Random random = new Random();
Datamodel.Num.Add(random.Next(0, 100));

View

界面设计

<lvc:CartesianChart><lvc:CartesianChart.Series><lvc:LineSeries Values="{Binding Datamodel.Num}" /></lvc:CartesianChart.Series>
</lvc:CartesianChart>

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

界面后端

this.DataContext = new DataViewModel();

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

效果

在这里插入图片描述
这里的数据与随机生成数据的程序有一点点的出入,我在ViewModel中读取了SQLite数据库表中的价格信息,通过界面按钮切换后,会主动更新折线图的数据。
在ViewModel中可以将Datamodel.Num的数据来源替换成读取SQLite数据库中表的数据,就可以完成价格数据的展现!


总结

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


http://www.ppmy.cn/devtools/127483.html

相关文章

关于Vue脚手架

一、简介与安装 1 简介 Vue Cli 全称Vue command line interface(Vue命令行接口)&#xff0c;俗称Vue脚手架&#xff0c; 是Vue官方提供的一个标准化开发工具(开发平台)。 可以帮助我们快速创建一个开发Vue项目的标准化基础架子。【集成了webpack配置】 参考官网&#xff1a…

使用 surya-ocr 进行文字识别

surya-ocr 是一个开源的 OCR 模型&#xff0c;个人用是免费的&#xff0c;商用是需要License&#xff0c;收费标准有些复杂&#xff0c;具体可以查看官网。 主要包括以下功能&#xff1a; 支持 90 多种语言的 OCR任何语言的行级文本检测版面分析&#xff08;表格、图像、标题等…

高级java每日一道面试题-2024年10月12日-Web篇-http,servlet,tomcat 之间是什么关系?

如果有遗漏,评论区告诉我进行补充 面试官: http&#xff0c;servlet&#xff0c;tomcat 之间是什么关系&#xff1f; 我回答: HTTP&#xff08;超文本传输协议&#xff09;、Servlet 和 Tomcat 之间的关系可以这样理解&#xff1a;它们是构建Web应用程序的不同层次的技术。下…

帝国cms取得内容和栏目链接地址的方法

用以下2个函数解决内容页面和栏目页面链接&#xff0c;可有效解决更改URL显示方式&#xff08;动态、静态、伪静态&#xff09;不需要修改模版中的链接地址。 内容页链接地址&#xff1a; $infourlsys_ReturnBqTitleLink($r); $r为含“id,classid,newspath,filename,groupid,ti…

使用Diffutoon把视频转换成动漫风格,无需部署,开箱即用

无论是图片动漫转换以及视频动漫转换&#xff0c;我们前期也介绍过相关的模型&#xff0c;但是其模型输出的动漫视频不是有瑕疵&#xff0c;就是动漫效果不唯美&#xff0c;今天介绍一个modelscope社区开源的动漫风格转换模型Diffutoon。 Diffutoon模型接受视频作为输入&#x…

如何在Android中进行日志打印和调试?

在Android开发中&#xff0c;日志打印和调试是开发者定位问题、优化性能和提升应用质量的重要手段。以下将详细阐述如何在Android中进行日志打印和调试&#xff0c;包括日志工具的使用、调试技巧以及实践中的最佳实践。 一、日志工具的使用 1. Log类 Android中的日志工具类是…

Kafka异常重试方案小记

背景 在最近进行的项目架构升级中&#xff0c;我们对原有的核心项目结构进行了细致的拆分。 现在&#xff0c;核心项目与非核心项目之间的通信和数据交换主要通过Kafka这一中间件来实现。 这种设计主要体现在核心项目向非核心项目发送通知&#xff0c;这些通知大致可以分为三个…

分布式混沌工程工具(ChaosBlade)

ChaosBlade是一个分布式混沌工程工具&#xff0c;主要用于压力测试和故障注入&#xff0c;支持多种云原生应用程序。 一、下载与安装 获取软件&#xff1a; 前往ChaosBlade的官方GitHub发布页面&#xff08;https://github.com/chaosblade-io/chaosblade/releases&#xff09…