using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; using Heisig.HMI.AdsManager; using HMIToolkit; using System.Collections.ObjectModel; using System.ComponentModel.DataAnnotations; using System.Windows; using TwinCAT.TypeSystem; using UniperHMI.Model; namespace UniperHMI { public sealed partial class ChuckMagazinPageVM : ObservableValidator, IDisposable { private readonly string? _variableName; private readonly IAdsManager? _adsManager; private const string sChuckOnPlace1 = "_adsVariable_MagazinPlace1"; private const string sChuckOnPlace2 = "_adsVariable_MagazinPlace2"; private const string sChuckOnPlace3 = "_adsVariable_MagazinPlace3"; private const string sChuckOnPlace4 = "_adsVariable_MagazinPlace4"; private const string sChuckOnPlace5 = "_adsVariable_MagazinPlace5"; private const string sChuckOnPlace6 = "_adsVariable_MagazinPlace6"; [ObservableProperty] private Visibility magazinPlace1; [ObservableProperty] private Visibility magazinPlace2; [ObservableProperty] private Visibility magazinPlace3; [ObservableProperty] private Visibility magazinPlace4; [ObservableProperty] private Visibility magazinPlace5; [ObservableProperty] private Visibility magazinPlace6; public ChuckMagazinPageVM() { } public ChuckMagazinPageVM(IAdsManager adsManager, string variableName) { _adsManager = adsManager; _variableName = variableName; _adsManager.Register(sChuckOnPlace1, ChuckOnPlace1Changed); _adsManager.Register(sChuckOnPlace2, ChuckOnPlace2Changed); _adsManager.Register(sChuckOnPlace3, ChuckOnPlace3Changed); _adsManager.Register(sChuckOnPlace4, ChuckOnPlace4Changed); _adsManager.Register(sChuckOnPlace5, ChuckOnPlace5Changed); _adsManager.Register(sChuckOnPlace6, ChuckOnPlace6Changed); } private void ChuckOnPlace1Changed(object? sender, ValueChangedEventArgs e) { if ((bool)e.Value) { MagazinPlace1 = Visibility.Visible; } else { MagazinPlace1 = Visibility.Hidden; } } private void ChuckOnPlace2Changed(object? sender, ValueChangedEventArgs e) { if ((bool)e.Value) { MagazinPlace2 = Visibility.Visible; } else { MagazinPlace2 = Visibility.Hidden; } } private void ChuckOnPlace3Changed(object? sender, ValueChangedEventArgs e) { if ((bool)e.Value) { MagazinPlace3 = Visibility.Visible; } else { MagazinPlace3 = Visibility.Hidden; } } private void ChuckOnPlace4Changed(object? sender, ValueChangedEventArgs e) { if ((bool)e.Value) { MagazinPlace4 = Visibility.Visible; } else { MagazinPlace4 = Visibility.Hidden; } } private void ChuckOnPlace5Changed(object? sender, ValueChangedEventArgs e) { if ((bool)e.Value) { MagazinPlace5 = Visibility.Visible; } else { MagazinPlace5 = Visibility.Hidden; } } private void ChuckOnPlace6Changed(object? sender, ValueChangedEventArgs e) { if ((bool)e.Value) { MagazinPlace6 = Visibility.Visible; } else { MagazinPlace6 = Visibility.Hidden; } } public void Dispose() { _adsManager?.Deregister(sChuckOnPlace1, ChuckOnPlace1Changed); _adsManager?.Deregister(sChuckOnPlace2, ChuckOnPlace2Changed); _adsManager?.Deregister(sChuckOnPlace3, ChuckOnPlace3Changed); _adsManager?.Deregister(sChuckOnPlace4, ChuckOnPlace4Changed); _adsManager?.Deregister(sChuckOnPlace5, ChuckOnPlace5Changed); _adsManager?.Deregister(sChuckOnPlace6, ChuckOnPlace6Changed); } } }