using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; using CommunityToolkit.Mvvm.Messaging; using Heisig.HMI.AdsManager; namespace UniperHMI; public sealed partial class StringOverviewPageVM : ObservableObject, IDisposable { [ObservableProperty] private ModuleControlButtonVM module1; [ObservableProperty] private ModuleControlButtonVM module2; [ObservableProperty] private ModuleControlButtonVM module3; private readonly IAdsManager? _adsManager; private readonly string? _variableName; public StringOverviewPageVM(IAdsManager adsManager, string variableName) { _adsManager = adsManager; _variableName = variableName; module1 = new(_adsManager, _variableName + ".stHMIInterfaceModule1"); module2 = new(_adsManager, _variableName + ".stHMIInterfaceModule2"); module3 = new(_adsManager, _variableName + ".stHMIInterfaceModule3"); } public void Dispose() { Module1?.Dispose(); Module2?.Dispose(); Module3?.Dispose(); } [RelayCommand] private void Module1Clicked() { WeakReferenceMessenger.Default.Send(new NavigateMessage(_variableName + ".stHMIInterfaceModule1", typeof(ModuleOverviewPage), "Module 1")); } [RelayCommand] private void Module2Clicked() { WeakReferenceMessenger.Default.Send(new NavigateMessage(_variableName + ".stHMIInterfaceModule2", typeof(ModuleOverviewPage), "Module 2")); } [RelayCommand] private void Module3Clicked() { WeakReferenceMessenger.Default.Send(new NavigateMessage(_variableName + ".stHMIInterfaceModule3", typeof(ModuleOverviewPage), "Module 3")); } }