| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- using Prism.Mvvm;
- using System.Linq;
- using Prism.Events;
- using SHJX.Service.Common.Event;
- using System.Collections.Generic;
- using SHJX.Service.Model.EventArgs;
- using SHJX.Service.Model.XmlModules;
- using SHJX.Service.Control.Interface;
- using System.Collections.ObjectModel;
- using SHJX.Service.Model.ControlModules;
- using SHJX.Service.Common.Interface;
- using SHJX.Service.Common.Constants;
- namespace SHJX.Service.Main.ViewModels
- {
- public class DissolveMiddlePosViewModel : BindableBase
- {
- #region Fields
- private readonly ILogService _log;
- #endregion
- #region Properties
- public ObservableCollection<RingProcessBarControl> RingProcessBars { get; set; }
- #endregion
- public DissolveMiddlePosViewModel(ILogService log, IEventAggregator ea, ISampleService service)
- {
- _log = log;
- SamplePosition topPosition = service.GetSamplePosition("DissolveTopPos");
- SamplePosition middleposition = service.GetSamplePosition("DissolveMiddlePos");
- int startIndex = topPosition.Count + 1;
- RingProcessBars = new ObservableCollection<RingProcessBarControl>();
- for (int i = 0; i < middleposition.Count; i++)
- {
- RingProcessBarControl ringProcess = new()
- {
- Index = i,
- Name = $"{middleposition.Value}{i + startIndex}"
- };
- RingProcessBars.Add(ringProcess);
- }
- #region 监听
- ea.GetEvent<UpdateElementEvent>().Subscribe(ChangeElement);
- ea.GetEvent<UpdateDissolveElementEvent>().Subscribe(ChangeProgress);
- #endregion
- }
- #region Event Methods
- public void ChangeElement(List<ElementArgs> args)
- {
- try
- {
- foreach (ElementArgs arg in args)
- {
- RingProcessBarControl control = RingProcessBars.Where(item => item.Name.Equals(arg.Name)).FirstOrDefault();
- if (control is null)
- {
- continue;
- }
- RingProcessBars[control.Index].CurrentText = !arg.Enable ? string.IsNullOrWhiteSpace(arg.Current) ? string.Empty : arg.Current.Length < 2 ? arg.Current : arg.Current[1..] : string.Empty;
- RingProcessBars[control.Index].CenterColor = !arg.Enable ? ColorNames.SentColor : ColorNames.MainColor;
- }
- }
- catch (System.Exception ex)
- {
- _log.ErrorFormat(ex.ToString());
- }
- }
- public void ChangeProgress(List<HeatingChangeArgs> args)
- {
- try
- {
- foreach (HeatingChangeArgs arg in args)
- {
- RingProcessBarControl control = RingProcessBars.Where(item => item.Name.Equals(arg.Name)).FirstOrDefault();
- if (control is null)
- {
- continue;
- }
- RingProcessBars[control.Index].RoundVisiable = arg.Dispaly;
- RingProcessBars[control.Index].CurrentCycleValue = arg.Progress;
- }
- }
- catch (System.Exception ex)
- {
- _log.ErrorFormat(ex.ToString());
- }
- }
- #endregion
- }
- }
|