DebugIOViewModel.cs 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. using Mapster;
  2. using Prism.Commands;
  3. using Prism.Events;
  4. using Prism.Mvvm;
  5. using ProjectManagementSystem.Common.Core;
  6. using ProjectManagementSystem.Common.Extenions;
  7. using ProjectManagementSystemView.Infrastructure.Events;
  8. using ProjectManagementSystemView.Infrastructure.Extensions;
  9. using ProjectManagementSystemView.Infrastructure.Models;
  10. using PropertyChanged;
  11. using System;
  12. using System.Collections.Generic;
  13. using System.Collections.ObjectModel;
  14. using System.Linq;
  15. using System.Text;
  16. using System.Threading.Tasks;
  17. namespace ProjectManagementSystemView.ViewModels
  18. {
  19. [AddINotifyPropertyChangedInterface]
  20. public class DebugIOViewModel
  21. {
  22. public bool IsVisible { get; set; }
  23. public ObservableCollection<VmInfoIO> VmDatas { get; set; } = new ObservableCollection<VmInfoIO>();
  24. public DebugIOViewModel(IEventAggregator eventAggregator)
  25. {
  26. eventAggregator.GetEvent<UpdateViewEvent>().Subscribe(UpdateView);
  27. }
  28. private void UpdateView()
  29. {
  30. if (!IsVisible) return;
  31. var dataList = DeviceControl.Instance.Communication.InfoIODictionary.Values;
  32. VmDatas.Update(dataList, (s, v) => s.DeviceId == v.DeviceId);
  33. }
  34. }
  35. }