using CommunityToolkit.Mvvm.ComponentModel; using LiveChartsCore; using LiveChartsCore.SkiaSharpView; using Microsoft.Extensions.Logging; using WCTDataMiner.Core.Services; namespace WCTDataMiner.Wpf.ViewModels; /// /// Ploss 折线图 ViewModel /// public partial class PlossChartViewModel : ObservableObject { private readonly ScenarioService _scenarioService; private readonly ILogger _logger; [ObservableProperty] private Guid _scenarioId; [ObservableProperty] private ISeries[] _series; [ObservableProperty] private Axis[] _xAxes; [ObservableProperty] private Axis[] _yAxes; public PlossChartViewModel( ScenarioService scenarioService, ILogger logger) { _scenarioService = scenarioService; _logger = logger; // 初始化图表配置 Series = Array.Empty(); XAxes = new Axis[] { new Axis { Name = "Trigger Count" } }; YAxes = new Axis[] { new Axis { Name = "Power Loss (mW)" } }; } public async Task LoadDataAsync() { try { // TODO: 从数据库加载 Ploss 数据并构建图表 Series = new ISeries[] { new LineSeries { Name = "Ploss", Values = new double[] { -2882, -3500, -4200, -3800, -4500 } }, new LineSeries { Name = "Threshold", Values = new double[] { -3000, -3000, -3000, -3000, -3000 } } }; } catch (Exception ex) { _logger.LogError(ex, "加载 Ploss 图表数据失败: ScenarioId={ScenarioId}", ScenarioId); } } }