using GalaSoft.MvvmLight; using GalaSoft.MvvmLight.Command; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using SlnMesnac.WPF.Page; using SlnMesnac.WPF.Page.Generate; using System; using System.Windows; namespace SlnMesnac.WPF.ViewModel { public class MainWindowViewModel: ViewModelBase { private readonly ILogger _logger; private readonly DevMonitorPage devMonitorPage = new DevMonitorPage(); private readonly ProdMgmtPage prodMgmtPage = new ProdMgmtPage(); private readonly ProdStatisticsPage prodStatisticsPage = new ProdStatisticsPage(); //代码生成 private readonly GenerateControl generateControl = new GenerateControl(); private readonly BaseConfigInfoPage configInfoPage = new BaseConfigInfoPage(); #region 参数定义 /// /// PLC设备状态 /// private int _PlcStatus = 0; public int PlcStatus { get { return _PlcStatus; } set { _PlcStatus = value; RaisePropertyChanged(nameof(PlcStatus)); } } /// /// 箱壳扫码器状态 /// private int _ShellScannerStatus = 0; public int ShellScannerStatus { get { return _ShellScannerStatus; } set { _ShellScannerStatus = value; RaisePropertyChanged(nameof(ShellScannerStatus)); } } /// /// 内胆扫码器状态 /// private int _BoldScannerStatus = 0; public int BoldScannerStatus { get { return _BoldScannerStatus; } set { _BoldScannerStatus = value; RaisePropertyChanged(nameof(BoldScannerStatus)); } } public System.Windows.Controls.UserControl _content; public System.Windows.Controls.UserControl UserContent { get { return _content; } set { _content = value; RaisePropertyChanged(nameof(UserContent)); } } #endregion #region 事件定义 /// /// 界面跳转按钮事件 /// public RelayCommand ControlOnClickCommand { get; set; } /// /// 打开系统键盘 /// public RelayCommand OpenSystemKeyboardCommand { get; set; } /// /// 窗体控制 /// public RelayCommand FormControlCommand { get; set; } #endregion public MainWindowViewModel() { _logger = App.ServiceProvider.GetService>(); UserContent = prodMgmtPage; ControlOnClickCommand = new RelayCommand(obj => ControlOnClick(obj)); FormControlCommand = new RelayCommand(x => FormControl(x)); } /// /// 窗体控制 /// /// private void FormControl(object obj) { try { string controlType = obj as string; switch (controlType) { case "DevMonitor": UserContent = devMonitorPage; break; case "ProdMgmt": UserContent = prodMgmtPage; break; case "ManualDelivery": //UserContent = manualDelivery; ManualDeliveryWindow manualDelivery = new ManualDeliveryWindow(); manualDelivery.ShowDialog(); break; case "ProdStatistics": UserContent = prodStatisticsPage; break; case "Exit":// 关闭当前窗口 //Environment.Exit(0); Application.Current.Shutdown(); break; case "Generate": UserContent = generateControl; break; case "ConfigInfo": UserContent = configInfoPage; break; // 还原 或者 最大化当前窗口 case "Normal": if (Application.Current.MainWindow.WindowState == WindowState.Normal) { Application.Current.MainWindow.WindowState = WindowState.Maximized; break; } if (Application.Current.MainWindow.WindowState == WindowState.Maximized) { Application.Current.MainWindow.WindowState = WindowState.Normal; break; } break; // 最小化当前窗口 case "Minimized": Application.Current.MainWindow.WindowState = WindowState.Minimized; break; default: break; } } catch (Exception ex) { _logger.LogError("窗体控制逻辑异常", ex); } } /// /// 界面跳转 /// private void ControlOnClick(object obj) { try { string info = obj as string; UserContent = prodMgmtPage ; } catch (Exception ex) { _logger.LogError("界面跳转逻辑异常", ex); } } } }