DashBoardMainViewModel.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. using CommunityToolkit.Mvvm.Input;
  2. namespace DashBoard.ViewModel;
  3. internal partial class DashBoardMainViewModel : ObservableObject
  4. {
  5. public DashBoardMainViewModel(DeviceCollection deviceCollection, IDialogService dialogService)
  6. {
  7. this._DialogService = dialogService;
  8. this.Devices = deviceCollection.DeviceList;
  9. deviceCollection.DeviceDataList.CollectionChanged += DeviceDataList_CollectionChanged;
  10. this.DeviceDataList_CollectionChanged(deviceCollection.DeviceDataList, null);
  11. }
  12. private void DeviceDataList_CollectionChanged(object? sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs? e)
  13. {
  14. if (sender is not ObservableDictionary<Guid, DeviceData_VM> deviceList)
  15. return;
  16. this.DeviceData.Clear();
  17. foreach (DeviceData_VM device in deviceList.Values)
  18. {
  19. this.DeviceData[device.DeviceModel] ??= [];
  20. this.DeviceData[device.DeviceModel].Add(device);
  21. }
  22. }
  23. private readonly IDialogService _DialogService;
  24. [ObservableProperty]
  25. private ObservableDictionary<Guid, DeviceInfo_VM> _Devices = [];
  26. [ObservableProperty]
  27. private ObservableDictionary<DeviceModel, ObservableCollection<DeviceData_VM>> _DeviceData = [];
  28. [RelayCommand]
  29. private void Warning(DeviceData_VM device)
  30. {
  31. IDialogParameters para = new DialogParameters() { { "alarm", device.Alarms! } };
  32. this._DialogService.Show("WarningList", para, null);
  33. }
  34. }