| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- 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<StatusControlInfo> StatusControls { get; set; }
- //public ShowStatusValueArgs ShowstatusValue { get; set; }
- /// <summary>
- /// 端口连接状态
- /// </summary>
- 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>();
-
- StatusControlInfo control = new()
- {
- Index = 0,
- ControlName = "3232",
- TagNameText = "42423",
- BackColor = ColorNames.MainColor
- };
- StatusControls.Add(control);
- #region 监听
- ea.GetEvent<UpdateStausEvent>().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
- }
- }
|