using Microsoft.Extensions.DependencyInjection; using OrpaonVision.ConfigApp.ViewModels; using OrpaonVision.ConfigApp.Views; using System.Windows; namespace OrpaonVision.ConfigApp { /// /// Interaction logic for MainWindow.xaml /// public partial class MainWindow : Window { private readonly MainWindowViewModel _viewModel; private readonly IServiceProvider _serviceProvider; /// /// 主窗口构造函数。 /// /// 主窗口 ViewModel。 public MainWindow(MainWindowViewModel viewModel, IServiceProvider serviceProvider) { _viewModel = viewModel; _serviceProvider = serviceProvider; InitializeComponent(); Title = "OrpaonVision ConfigApp (CVAT)"; DataContext = _viewModel; } private async void OnCheckStatusClicked(object sender, RoutedEventArgs e) { await _viewModel.CheckStatusAsync(); } private async void OnQueryTaskDetailClicked(object sender, RoutedEventArgs e) { await _viewModel.QueryTaskDetailAsync(); } private async void OnSyncClicked(object sender, RoutedEventArgs e) { await _viewModel.SyncAsync(); } private async void OnSaveRuleDraftClicked(object sender, RoutedEventArgs e) { await _viewModel.SaveRuleDraftAsync(); } private async void OnPublishRuleVersionClicked(object sender, RoutedEventArgs e) { await _viewModel.PublishRuleVersionAsync(); } private void OnAddRuleLayerClicked(object sender, RoutedEventArgs e) { _viewModel.AddRuleLayerRow(); } private void OnRemoveRuleLayerClicked(object sender, RoutedEventArgs e) { _viewModel.RemoveSelectedRuleLayerRow(); } private void OnAddRulePartClicked(object sender, RoutedEventArgs e) { _viewModel.AddRulePartRow(); } private void OnRemoveRulePartClicked(object sender, RoutedEventArgs e) { _viewModel.RemoveSelectedRulePartRow(); } private void OnAddRuleRoiClicked(object sender, RoutedEventArgs e) { _viewModel.AddRuleRoiRow(); } private void OnRemoveRuleRoiClicked(object sender, RoutedEventArgs e) { _viewModel.RemoveSelectedRuleRoiRow(); } private void OnAddRuleItemClicked(object sender, RoutedEventArgs e) { _viewModel.AddRuleItemRow(); } private void OnRemoveRuleItemClicked(object sender, RoutedEventArgs e) { _viewModel.RemoveSelectedRuleItemRow(); } private async void OnCompareVersionsClicked(object sender, RoutedEventArgs e) { await _viewModel.CompareVersionsAsync(); } private async void OnRollbackVersionClicked(object sender, RoutedEventArgs e) { await _viewModel.RollbackVersionAsync(); } private async void OnQueryRuleAuditClicked(object sender, RoutedEventArgs e) { await _viewModel.QueryRecentRuleAuditsAsync(); } private async void OnDisableRuleVersionClicked(object sender, RoutedEventArgs e) { await _viewModel.DisableVersionAsync(); } private async void OnQueryRuleVersionDetailClicked(object sender, RoutedEventArgs e) { await _viewModel.QueryVersionDetailAsync(); } private async void OnQueryRuleVersionPagedClicked(object sender, RoutedEventArgs e) { await _viewModel.QueryVersionPagedListAsync(); } private void OpenTrainingTaskManagement_Click(object sender, RoutedEventArgs e) { _viewModel.OpenTrainingTaskManagement(); } private void OpenProductionSessionManagement_Click(object sender, RoutedEventArgs e) { try { var viewModel = _serviceProvider.GetRequiredService(); var window = new Views.ProductionSessionManagementWindow(viewModel); window.Show(); } catch (Exception ex) { MessageBox.Show($"打开产品会话管理窗口失败: {ex.Message}", "错误", MessageBoxButton.OK, MessageBoxImage.Error); } } } }