232 lines
5.9 KiB
C#
Raw Normal View History

2025-09-04 18:28:02 +08:00
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Windows.Input;
using Prism.Services.Dialogs;
using Prism.Ioc;
using SWS.Commons;
using SWS.Model;
using SWS.Service;
using SWS.WPF.Views;
using Telerik.Windows.Controls;
using Unity;
using DialogParameters = Prism.Services.Dialogs.DialogParameters;
namespace SWS.WPF.ViewModels
{
public class DialogAllOutputSignalViewModel : DialogBase, IDialogAware
{
#region
private ObservableCollection<signalGroupInfo> _MysignalGroups = new ObservableCollection<signalGroupInfo>();
/// <summary>
/// 表格数据源
/// </summary>
public ObservableCollection<signalGroupInfo> MysignalGroups
{
get { return _MysignalGroups; }
set { _MysignalGroups = value; RaisePropertyChanged(nameof(MysignalGroups)); }
}
private signalGroupInfo _SelectedSignalGroup;
/// <summary>
/// 选中行
/// </summary>
public signalGroupInfo SelectedSignalGroup
{
get { return _SelectedSignalGroup; }
set { _SelectedSignalGroup = value; RaisePropertyChanged(nameof(SelectedSignalGroup)); }
}
/// <summary>
/// 信号接口服务
/// </summary>
WireGroupService _wireGroupService;
public DialogSignalNotice SignalNoticeView { get; set; }
#endregion
public DialogAllOutputSignalViewModel()
{
title = "输出点落实情况";
_wireGroupService = GlobalObject.container.Resolve<WireGroupService>();
}
public string Title => "";
public event Action<IDialogResult> RequestClose;
public bool CanCloseDialog()
{
return true;
}
public void OnDialogClosed()
{
}
public async void OnDialogOpened(IDialogParameters parameters)
{
var GroupInfos = await _wireGroupService.GetGroupInfo();
foreach (var Group in GroupInfos)
{
signalGroupInfo signalGroup = new signalGroupInfo(Group);
MysignalGroups.Add(signalGroup);
}
}
public override void ExecuteOKCommandAsync(object para)
{
DialogResult result = new DialogResult(ButtonResult.Yes);
RequestClose.Invoke(result);
}
public override void ExecuteCloseCommand(object parameter)
{
if (parameter as string == "ClickNo")
{
DialogResult result = new DialogResult(ButtonResult.No);
RequestClose.Invoke(result);
}
else
{
DialogResult result = new DialogResult(ButtonResult.Cancel);
RequestClose.Invoke(result);
}
this.Dispose();
}
#region
public ICommand StatusButtonCmd => new DelegateCommand(StatusButton_Click);
/// <summary>
/// 显示状态按钮
/// </summary>
/// <param name="parameter"></param>
public virtual async void StatusButton_Click(object parameter)
{
}
#endregion
#region
public ICommand ButtonCmd => new DelegateCommand(Button_Click);
/// <summary>
/// 页面右侧按钮
/// </summary>
/// <param name="parameter"></param>
public virtual async void Button_Click(object parameter)
{
#region
if (parameter.Equals("确定"))
{
DialogResult result = new DialogResult(ButtonResult.Cancel);
RequestClose.Invoke(result);
this.Dispose();
}
#endregion
#region
if (parameter.Equals("取消"))
{
DialogResult result = new DialogResult(ButtonResult.Cancel);
RequestClose.Invoke(result);
this.Dispose();
}
#endregion
}
#endregion
}
public class signalGroupInfo : ViewModelBase
{
private string _Name;
public string Name
{
get { return _Name; }
set
{
_Name = value;
RaisePropertyChanged(nameof(Name));
}
}
private string _NameEN;
public string NameEN
{
get { return _NameEN; }
set { _NameEN = value;
RaisePropertyChanged(nameof(NameEN));
}
}
private string _Code;
public string Code
{
get { return _Code; }
set { _Code = value;
RaisePropertyChanged(nameof(Code));
}
}
private string _Id;
public string Id
{
get { return _Id; }
set { _Id = value;
RaisePropertyChanged(nameof(Id));
}
}
private signalGroupStatusEnum _status;
public signalGroupStatusEnum status
{
get { return _status; }
set { _status = value;
RaisePropertyChanged(nameof(status));
}
}
private ObservableCollection<ec_Wire_Group> _Sub;
public ObservableCollection<ec_Wire_Group> Sub
{
get { return _Sub; }
set
{
_Sub = value;
RaisePropertyChanged(nameof(Sub));
}
}
public signalGroupInfo(signalGroup signalGroup )
{
this.Name = signalGroup.Name;
this.NameEN = signalGroup.NameEN;
this.Code = signalGroup.Code;
this.Id = signalGroup.Id;
this.status = signalGroup.status;
this.Sub = new ObservableCollection<ec_Wire_Group>(signalGroup.Sub);
}
}
}