using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; using CommunityToolkit.Mvvm.Messaging; using Heisig.HMI.AdsManager; using UniperHMI.OwnControls; namespace UniperHMI { public sealed partial class ModuleOverviewPageVM : ObservableObject, IDisposable { [ObservableProperty] private UnitControlButtonVM unit1; [ObservableProperty] private UnitControlButtonVM unit2; [ObservableProperty] private UnitControlButtonVM unit3; [ObservableProperty] private UnitControlButtonVM unit4; private readonly IAdsManager? _adsManager; private readonly string? _variableName; public ModuleOverviewPageVM(IAdsManager adsManager, string variableName) { _adsManager = adsManager; _variableName = variableName; unit1 = new(_adsManager, _variableName + ".stHMIInterfaceUnit1"); unit2 = new(_adsManager, _variableName + ".stHMIInterfaceUnit2"); unit3 = new(_adsManager, _variableName + ".stHMIInterfaceUnit3"); unit4 = new(_adsManager, _variableName + ".stHMIInterfaceUnit4"); } public void Dispose() { Unit1?.Dispose(); Unit2?.Dispose(); Unit3?.Dispose(); Unit4?.Dispose(); } [RelayCommand] public void Unit1Clicked() { WeakReferenceMessenger.Default.Send(new NavigateMessage(_variableName + ".stHMIInterfaceUnit1", typeof(UnitOverviewPage), "Unit 1")); } [RelayCommand] public void Unit2Clicked() { WeakReferenceMessenger.Default.Send(new NavigateMessage(_variableName + ".stHMIInterfaceUnit2", typeof(UnitOverviewPage), "Unit 2")); } [RelayCommand] public void Unit3Clicked() { WeakReferenceMessenger.Default.Send(new NavigateMessage(_variableName + ".stHMIInterfaceUnit3", typeof(UnitOverviewPage), "Unit 3")); } [RelayCommand] public void Unit4Clicked() { WeakReferenceMessenger.Default.Send(new NavigateMessage(_variableName + ".stHMIInterfaceUnit4", typeof(UnitOverviewPage), "Unit 4")); } } }