C#-WPF-控件-CartesianChart圖表-線(xiàn)性3(LineSeries)-MVVM模式(封裝數(shù)據(jù)綁定類(lèi))
知識(shí)點(diǎn)1. 數(shù)據(jù)綁定數(shù)據(jù)綁定類(lèi) 與 圖形操作在同一個(gè)類(lèi)中2. X軸上顯示點(diǎn)數(shù)主類(lèi) 中3. 添加隨機(jī)值在圖表中 值針對(duì)Y軸值4. 清空?qǐng)D表5. 圖標(biāo)titel顯示實(shí)例圖表控件綁定 SeriesCollectionA Utils_ChartA.cs中l(wèi)vc:CartesianChart x:NameLiveChartsA Margin10,146,185,51 Series{Binding SeriesCollectionA} Background#FFF8FCFD LegendLocationTop /lvc:CartesianChart提示框綁定 MsgTips Utils_ChartA.cs中Label Grid.Row2 Grid.Column0 FontSize12 Background#22FF0000 Content{Binding MsgTips} /Utils_ChartA.cs(數(shù)據(jù)綁定類(lèi) 與 圖形操作在同一個(gè)類(lèi)中)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() { // 在構(gòu)造函數(shù)中初始化 _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() //實(shí)例化一條折線(xiàn)圖 { Title M485-----電壓測(cè)試圖, //設(shè)置折線(xiàn)的標(biāo)題 StrokeThickness 1, // 設(shè)置折線(xiàn)粗細(xì) LineSmoothness 1, //折線(xiàn)圖直線(xiàn)形式 0 or 1 PointGeometry null, //折線(xiàn)圖的無(wú)點(diǎn)樣式 Stroke Brushes.Red, // 紅色線(xiàn)條 Values new ChartValuesdouble(new Double[XPonitLength]) //添加折線(xiàn)圖的數(shù)據(jù)(X軸劃分點(diǎn)數(shù)) }; SeriesCollectionA.Add(myLineseries); } public void addData(double n) { //通過(guò)Dispatcher在工作線(xiàn)程中更新窗體的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(); //清空數(shù)據(jù) InitializeLiveCharts1(0); //重復(fù)新初始化 } 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 你點(diǎn)擊了-- button.Content i; //Debug.Write(你點(diǎn)擊了--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; } } } }將持續(xù)更新

相關(guān)新聞

Python操作MySQL數(shù)據(jù)庫(kù)進(jìn)階指南:連接池與事務(wù)管理

Python操作MySQL數(shù)據(jù)庫(kù)進(jìn)階指南:連接池與事務(wù)管理

1. Python操作MySQL數(shù)據(jù)庫(kù)全景指南作為數(shù)據(jù)驅(qū)動(dòng)應(yīng)用的核心組件,數(shù)據(jù)庫(kù)操作一直是Python開(kāi)發(fā)者必須掌握的硬技能。MySQL作為最流行的開(kāi)源關(guān)系型數(shù)據(jù)庫(kù),與Python的配合堪稱(chēng)黃金組合。但很多開(kāi)發(fā)者停留在基礎(chǔ)CRUD階段,對(duì)連接池、事務(wù)管理等進(jìn)階用…

2026/7/28 20:04:41 閱讀更多
利用美國(guó)教育郵箱低成本獲取AI開(kāi)發(fā)工具權(quán)限:Dify部署與Claude注冊(cè)實(shí)戰(zhàn)指南

利用美國(guó)教育郵箱低成本獲取AI開(kāi)發(fā)工具權(quán)限:Dify部署與Claude注冊(cè)實(shí)戰(zhàn)指南

如果你最近在嘗試部署 Dify 或者想體驗(yàn) Claude 的最新模型,比如 Claude 3.5 Sonnet 或 Claude 3 Opus,那么一個(gè)繞不開(kāi)的坎就是: 你需要一個(gè)能通過(guò)嚴(yán)格驗(yàn)證的郵箱來(lái)注冊(cè)和綁定這些服務(wù)。 無(wú)論是 Dify 的郵件驗(yàn)證,還是 Anthropic 官方對(duì) Claude 賬號(hào)的審核,一個(gè)普通的個(gè)人…

2026/7/28 20:04:41 閱讀更多
嵌入式設(shè)備與云端安全連接方案及優(yōu)化技巧

嵌入式設(shè)備與云端安全連接方案及優(yōu)化技巧

1. 項(xiàng)目背景與硬件選型解析當(dāng)我們需要在嵌入式設(shè)備與云端建立安全連接時(shí),硬件平臺(tái)的選擇直接影響著整個(gè)系統(tǒng)的性能和可靠性。這個(gè)項(xiàng)目中選用的A5000顯卡和TM4C123GH6PZ微控制器組合,恰好覆蓋了從邊緣計(jì)算到云端協(xié)同的全鏈路需求。NVIDIA RTX A5000作為專(zhuān)…

2026/7/29 4:16:02 閱讀更多
簡(jiǎn)易實(shí)現(xiàn)ssr

簡(jiǎn)易實(shí)現(xiàn)ssr

vue31. 項(xiàng)目結(jié)構(gòu)src/ ├── entry-server.js # 服務(wù)端入口 ├── entry-client.js # 客戶(hù)端入口(水合) ├── App.vue server.js # Node服務(wù) index.html # HTML模板2. 關(guān)鍵代碼server.js(Node 服務(wù))imp…

2026/7/29 4:16:02 閱讀更多
物聯(lián)網(wǎng)設(shè)備低功耗設(shè)計(jì):NBM7100A與STM32F765ZI優(yōu)化方案

物聯(lián)網(wǎng)設(shè)備低功耗設(shè)計(jì):NBM7100A與STM32F765ZI優(yōu)化方案

1. 項(xiàng)目背景與核心挑戰(zhàn)在物聯(lián)網(wǎng)設(shè)備和嵌入式系統(tǒng)設(shè)計(jì)中,紐扣電池(如CR2032)因其體積小、成本低、自放電率低等特性,常被用于為實(shí)時(shí)時(shí)鐘(RTC)、存儲(chǔ)器備份、傳感器等關(guān)鍵子系統(tǒng)供電。但這類(lèi)不可充電的初級(jí)電…

2026/7/29 4:16:02 閱讀更多
A5000與PIC18LF25K80實(shí)現(xiàn)物聯(lián)網(wǎng)安全連接方案

A5000與PIC18LF25K80實(shí)現(xiàn)物聯(lián)網(wǎng)安全連接方案

1. 為什么選擇A5000與PIC18LF25K80組合在物聯(lián)網(wǎng)設(shè)備開(kāi)發(fā)領(lǐng)域,安全連接云端服務(wù)一直是個(gè)棘手的難題。我最近用A5000加密模塊搭配PIC18LF25K80微控制器完成了一個(gè)工業(yè)級(jí)安全連接方案,這套組合就像是給數(shù)據(jù)傳輸配備了專(zhuān)業(yè)保鏢和智能管家。A5000作為硬件加密…

2026/7/29 4:16:02 閱讀更多
從傾斜開(kāi)關(guān)到LED控制:嵌入式入門(mén)中的傳感器信號(hào)處理與消抖實(shí)踐

從傾斜開(kāi)關(guān)到LED控制:嵌入式入門(mén)中的傳感器信號(hào)處理與消抖實(shí)踐

1. 項(xiàng)目緣起:從“傾斜”到“點(diǎn)亮”的物理直覺(jué)最近在整理工作室的電子元件,翻出來(lái)一堆傾斜開(kāi)關(guān)和LED燈珠。看著這些不起眼的小玩意兒,我突然想到,很多朋友在入門(mén)電子制作時(shí),第一個(gè)接觸的互動(dòng)項(xiàng)目可能就是“按鈕控制LED”…

2026/7/29 4:16:02 閱讀更多
C++字符串?dāng)?shù)組輸入:從cin到getline的緩沖區(qū)管理與實(shí)戰(zhàn)避坑指南

C++字符串?dāng)?shù)組輸入:從cin到getline的緩沖區(qū)管理與實(shí)戰(zhàn)避坑指南

1. 項(xiàng)目概述:一個(gè)看似簡(jiǎn)單卻暗藏玄機(jī)的“入門(mén)級(jí)”問(wèn)題剛接觸C那會(huì)兒,字符串?dāng)?shù)組的輸入問(wèn)題,絕對(duì)是我踩過(guò)的第一個(gè)大坑。表面上看,不就是用個(gè)cin或者getline讀幾行字符串嘛,能有多復(fù)雜?但真上手寫(xiě)代碼&#…

2026/7/29 4:06:02 閱讀更多
面試官大笑:“一個(gè)任務(wù)拆給 5 個(gè) Subagent 并行跑,不比 1 個(gè)快 5 倍?“我搖頭:“快不了,還可能更慢“

面試官大笑:“一個(gè)任務(wù)拆給 5 個(gè) Subagent 并行跑,不比 1 個(gè)快 5 倍?“我搖頭:“快不了,還可能更慢“

前兩個(gè)月,我在重構(gòu) AlgoMooc 網(wǎng)站過(guò)程中,發(fā)現(xiàn)一個(gè)問(wèn)題:在 Claude Code 里把一個(gè)任務(wù)拆給 5 個(gè) Subagent 并行跑,結(jié)果可能比 1 個(gè) agent 從頭干到尾還慢? 大多數(shù)人的第一反應(yīng)是反過(guò)來(lái)的:活是并行干的&#…

2026/7/29 0:15:24 閱讀更多
# 鴻蒙 HarmonyOS 應(yīng)用開(kāi)發(fā)實(shí)戰(zhàn)(第25期)|骰子(Dice Roller)— Unicode 符號(hào)與動(dòng)畫(huà)渲染精講

# 鴻蒙 HarmonyOS 應(yīng)用開(kāi)發(fā)實(shí)戰(zhàn)(第25期)|骰子(Dice Roller)— Unicode 符號(hào)與動(dòng)畫(huà)渲染精講

一、應(yīng)用概述 骰子(Dice Roller) 是一款經(jīng)典的休閑娛樂(lè)應(yīng)用,模擬了真實(shí)擲骰子的過(guò)程。應(yīng)用投擲兩個(gè)骰子(六面標(biāo)準(zhǔn)骰),使用 Unicode 骰面符號(hào)直觀(guān)展示每個(gè)骰子的點(diǎn)數(shù),并伴有快速滾動(dòng)的動(dòng)畫(huà)效果?!?/p>

2026/7/29 0:15:24 閱讀更多