using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; using CommunityToolkit.Mvvm.Messaging; using Heisig.HMI.AdsManager; namespace UniperHMI { public sealed partial class BatteryOverviewPageVM : ObservableObject, IDisposable { [ObservableProperty] private StringControlButtonVM? string1VM; [ObservableProperty] private StringControlButtonVM? string2VM; [ObservableProperty] private StringControlButtonVM? dummyStringVM; private readonly IAdsManager? _adsManager; public BatteryOverviewPageVM() { string1VM = new StringControlButtonVM(); string2VM = new StringControlButtonVM(); } public BatteryOverviewPageVM(IAdsManager adsManager) { _adsManager = adsManager; string1VM = new StringControlButtonVM(adsManager, "GVL_SCADA.stHMIInterface[0]"); string2VM = new StringControlButtonVM(adsManager, "GVL_SCADA.stHMIInterface[1]"); } public void Dispose() { String1VM?.Dispose(); String1VM = null; String2VM?.Dispose(); String2VM = null; } [RelayCommand] private void String1Clicked() { WeakReferenceMessenger.Default.Send(new NavigateMessage("GVL_SCADA.stHMIInterface[0]", typeof(StringOverviewPage), "String 1")); } [RelayCommand] private void String2Clicked() { WeakReferenceMessenger.Default.Send(new NavigateMessage("GVL_SCADA.stHMIInterface[1]", typeof(StringOverviewPage), "String 2")); } } }