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.Control.Interface; using System.Collections.ObjectModel; using SHJX.Service.Common.Constants; using SHJX.Service.Model.ControlModules; namespace SHJX.Service.Main.ViewModels { public class ShowStatusViewModel : BindableBase { #region Properties public ObservableCollection StatusControls { get; set; } //public ShowStatusValueArgs ShowstatusValue { get; set; } /// /// 端口连接状态 /// private string _showstatusValue; public string ShowstatusValue { get => _showstatusValue; set => SetProperty(ref _showstatusValue, value); } #endregion public ShowStatusViewModel(IEventAggregator ea, IMainService service) { //ShowstatusValue = new ShowStatusValueArgs(); StatusControls = new ObservableCollection(); StatusControlInfo control = new() { Index = 0, ControlName = "3232", TagNameText = "42423", BackColor = ColorNames.MainColor }; StatusControls.Add(control); #region 监听 ea.GetEvent().Subscribe((lists) => { string[] strArray = ShowstatusValue?.Split('\r'); if (strArray?.Length >= 9) { ShowstatusValue = ""; for (int i = 0; i < 8;i++) { ShowstatusValue += strArray[strArray.Length - 9 + i] + "\r"; } } ShowstatusValue += lists.CurrentContent + "\r"; }); #endregion } #region Event Methods public void ChangeElement(ShowStatusValueArgs args) { // showText = args.CurrentContent; //StatusControlInfo control = StatusControls.Where(item => item.ControlName.Equals(arg.Name)).FirstOrDefault(); //if (control is null) //{ // continue; //} //StatusControls[control.Index].CurrentTextText = !arg.Enable ? string.IsNullOrWhiteSpace(arg.Current) ? string.Empty : arg.Current.Length < 2 ? arg.Current : arg.Current[1..] : string.Empty; // StatusControls[control.Index].BackColor = !arg.Enable ? ColorNames.SentColor : ColorNames.MainColor; //StatusControls[0].ControlName = args.CurrentContent; // StatusControlsIndex].BackColor = !arg.Enable ? ColorNames.SentColor : ColorNames.MainColor; } #endregion } }