using System.Collections.ObjectModel; using Prism.Mvvm; namespace XP.Hardware.PLC.Sentry.ViewModels { /// /// 信号分组 ViewModel,对应一个 Tab 页 | Signal group ViewModel, corresponds to one Tab page /// public class SignalGroupViewModel : BindableBase { private string _groupId = string.Empty; private int _dbNumber; private ObservableCollection _signals = new(); /// /// 分组 ID | Group ID /// public string GroupId { get => _groupId; set => SetProperty(ref _groupId, value ?? string.Empty); } /// /// DB 块号 | DB block number /// public int DBNumber { get => _dbNumber; set => SetProperty(ref _dbNumber, value); } /// /// 标签页标题,格式 "{GroupId} [DB{DBNumber}]" | Tab header, format "{GroupId} [DB{DBNumber}]" /// public string TabHeader => $"{GroupId} [DB{DBNumber}]"; /// /// 该分组下的信号行集合 | Signal row collection under this group /// public ObservableCollection Signals { get => _signals; set => SetProperty(ref _signals, value ?? new ObservableCollection()); } } }