using Model.Entity; using Prism.Commands; using Prism.Ioc; using System.Collections.ObjectModel; using UIShare.ViewModelBase; namespace MainModule.ViewModels { public class MainViewModel : NavigateViewModelBase { public ObservableCollection Chambers { get; } = new(); private IContainerProvider _containerProvider; public MainViewModel(IContainerProvider containerProvider) : base(containerProvider) { _containerProvider = containerProvider; // 触发配置与绑定初始化 ConfigureAndBindChambers(); } /// /// 核心配置与数据绑定逻辑 /// private void ConfigureAndBindChambers() { // 实例 1:Modbus TCP 环境箱配置 Chambers.Add(new ChamberMonitorItem { Id = 1, Name = "环境箱 01", ProtocolType = "Modbus TCP", IsConnected = false, Temperature = 0.0, Humidity = 0.0 }); // 实例 2:Modbus TCP B+ 环境箱配置 Chambers.Add(new ChamberMonitorItem { Id = 2, Name = "环境箱 02", ProtocolType = "Modbus TCP B+", IsConnected = false, Temperature = 0.0, Humidity = 0.0 }); // 实例 3:西门子 S7 环境箱配置 Chambers.Add(new ChamberMonitorItem { Id = 3, Name = "环境箱 03", ProtocolType = "S7", IsConnected = false, Temperature = 0.0, Humidity = 0.0 }); // 实例 4:HTTP 环境箱配置 Chambers.Add(new ChamberMonitorItem { Id = 4, Name = "环境箱 04", ProtocolType = "HTTP", IsConnected = false, Temperature = 0.0, Humidity = 0.0 }); } } /// /// 环境箱 UI 状态及温湿度数据绑定模型 /// public class ChamberMonitorItem :BindableBase { private double _temperature; private double _humidity; private bool _isConnected; public int Id { get; set; } public string Name { get; set; } = string.Empty; public string ProtocolType { get; set; } = string.Empty; /// /// 温度(支持通知刷新) /// public double Temperature { get => _temperature; set => SetProperty(ref _temperature, value); } /// /// 湿度(支持通知刷新) /// public double Humidity { get => _humidity; set => SetProperty(ref _humidity, value); } /// /// 连接状态:True-已连接(绿灯),False-断开(红灯) /// public bool IsConnected { get => _isConnected; set => SetProperty(ref _isConnected, value); } } }