using Prism.Services.Dialogs; using SWS.CAD.ViewModels.myViewModelBase; using SWS.Commons; using SWS.Model; using System; using System.Collections.ObjectModel; using System.Windows; using Telerik.Windows.Controls; using Unity; namespace SWS.CAD.ViewModels { public class DialogSignalSelectViewModel : DialogBase, IDialogAware { public DialogSignalSelectViewModel() { title = "信号选择框"; } public string Title => ""; public event Action RequestClose; public bool CanCloseDialog() { return true; } public void OnDialogClosed() { } private ObservableCollection _listSignal; /// /// 单位列表 /// public ObservableCollection listSignal { get { return _listSignal; } set { _listSignal = value; RaisePropertyChanged(nameof(listSignal)); } } private Signal _SelectedSignal; /// /// 选中的单位 /// public Signal SelectedSignal { get { return _SelectedSignal; } set { _SelectedSignal = value; RaisePropertyChanged(nameof(SelectedSignal)); } } public void OnDialogOpened(IDialogParameters parameters) { var signals = parameters.GetValue>(GlobalObject.dialogPar.para1.ToString()); listSignal = new ObservableCollection(); foreach (var item in signals) { if (item.type.Equals("信号")) { listSignal.Add(new Signal() { SignalId = item.Wire_Group_ID, SignalName = item.Group_Name }); } } } public override void ExecuteOKCommandAsync(object para) { if (SelectedSignal == null) { MessageBox.Show("请选择一个信号!"); return; } IDialogParameters res = new Prism.Services.Dialogs.DialogParameters(); res.Add(GlobalObject.dialogPar.para1.ToString(), SelectedSignal); RequestClose.Invoke(new DialogResult(ButtonResult.Yes, res)); } public override void ExecuteCloseCommand(object parameter) { if (parameter as string == "ClickNo") { DialogResult res = new DialogResult(ButtonResult.No); RequestClose.Invoke(res); } else { RequestClose.Invoke(new DialogResult(ButtonResult.Cancel)); } this.Dispose(); } } public class Signal : ViewModelBase { private string _SignalId; /// /// Id /// public string SignalId { get { return _SignalId; } set { _SignalId = value; RaisePropertyChanged(nameof(SignalId)); } } private string _SignalName; /// /// 信号 /// public string SignalName { get { return _SignalName; } set { _SignalName = value; RaisePropertyChanged(nameof(SignalName)); } } } }