using System; using System.Collections.Generic; using System.Linq; using System.Text; using Prism.Mvvm; using System.Threading.Tasks; using Prism.Commands; using Prism.Events; using Prism.Ioc; using Prism.Regions; using LampInspectionMachine.Views; using LampInspectionMachine.DataBase; using System.Windows; using LampInspectionMachine.Model; using LampInspectionMachine.Core; using static System.Windows.Forms.VisualStyles.VisualStyleElement.ToolTip; using System.Windows.Interop; using LampInspectionMachine.Log4xml; namespace LampInspectionMachine.ViewModels { public class MainWindowViewModel : BindableBase { private AppData _appData; private Management management; private IContainerProvider _container; private IEventAggregator _eventAggregator; private IRegionManager _regionManager; public DelegateCommand LoadedCommand { get; set; } public DelegateCommand ClosedCommand { get; set; } public MainWindowViewModel(IContainerProvider container, IRegionManager regionManager, IEventAggregator eventAggregator) { SqlSugarHelper.CreataDatabase(); _container = container; _eventAggregator = eventAggregator; _regionManager = regionManager; _appData = _container.Resolve(); management = _container.Resolve(); LoadedCommand = new DelegateCommand(OnLoad); ClosedCommand = new DelegateCommand(OnClose); } private DelegateCommand _OpenMenuViewCommand; public DelegateCommand OpenMenuViewCommand => _OpenMenuViewCommand ?? ( _OpenMenuViewCommand = new DelegateCommand(MenuViewShow) ); private DelegateCommand _OpenRoleLoginViewCommand; public DelegateCommand OpenRoleLoginViewCommand => _OpenRoleLoginViewCommand ?? ( _OpenRoleLoginViewCommand = new DelegateCommand(RoleLoginViewShow) ); private DelegateCommand _OpenWorkRunViewCommand; public DelegateCommand OpenWorkRunViewCommand => _OpenWorkRunViewCommand ?? ( _OpenWorkRunViewCommand = new DelegateCommand(WorkRunViewShow) ); private DelegateCommand_CloseViewCommand; public DelegateCommand CloseViewCommand => _CloseViewCommand ?? ( _CloseViewCommand = new DelegateCommand(CloseViewMethod) ); private async void OnLoad() { _regionManager.Regions[ "RegionContent" ].RequestNavigate("WorkRunView"); } private void OnClose() { } void MenuViewShow() { if (management.VisionProManagers.Count == management.CamConfigs.Count) { LogHelper.Info("切换相机调试"); _regionManager.Regions["RegionContent"].RequestNavigate("MenuView"); } } void RoleLoginViewShow() { RoleLoginView roleLoginView = new RoleLoginView(); roleLoginView.ShowDialog(); } void WorkRunViewShow() { LogHelper.Info("切换运行界面"); _regionManager.Regions[ "RegionContent" ].RequestNavigate("WorkRunView"); } void CloseViewMethod(MainWindow window) { _appData.APPExitEvent.Reset(); window.Close(); } } }