using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Microsoft.Toolkit.Mvvm.ComponentModel; using System.Collections.Concurrent; using System.Collections.ObjectModel; using Microsoft.Toolkit.Mvvm.Input; using Microsoft.Toolkit.Mvvm.Messaging; using System.Diagnostics; using BPASmart.Model; using System.Reflection; namespace BPASmart.VariableManager.ViewModels { public class NewDeviceViewModel : ObservableObject { public NewDeviceViewModel() { Init(); CancelCommand = new RelayCommand(() => { if (DelegationNotifi.GetInstance.Cancel != null) DelegationNotifi.GetInstance.Cancel(devcieManagerResult); }); ConfirmCommand = new RelayCommand(() => { if (DelegationNotifi.GetInstance.AddDeviceVerify != null) { if (DelegationNotifi.GetInstance.AddDeviceVerify(devcieManagerResult)) { if (DelegationNotifi.GetInstance.Confirm != null) DelegationNotifi.GetInstance.Confirm(devcieManagerResult); } else { LogInfo = $"警告:设备【{devcieManagerResult.DeviceName}】已存在,请重试"; } } else { LogInfo = $"警告:设备添加失败!"; } }); } public ObservableCollection DeviceType { get; set; } = new ObservableCollection(); public RelayCommand CancelCommand { get; set; } public RelayCommand ConfirmCommand { get; set; } private void Init() { DeviceType.Clear(); var assembly = Assembly.GetAssembly(typeof(ICommunicationDevice))?.GetTypes()?.ToList(); assembly?.ForEach(item => { if (item.GetInterfaces().Contains(typeof(ICommunicationDevice))) { DeviceType.Add(item.Name); } }); } public DeviceManagermentResult devcieManagerResult { get { return _mdevcieManagerResult; } set { _mdevcieManagerResult = value; OnPropertyChanged(); } } private DeviceManagermentResult _mdevcieManagerResult = new DeviceManagermentResult(); public string LogInfo { get { return _mLogInfo; } set { _mLogInfo = value; OnPropertyChanged(); } } private string _mLogInfo; } }