using PetWashControl.ViewModels; using PetWashControl.Models; using System.Windows; using System.Windows.Input; namespace PetWashControl.Views; public partial class MainWindow : Window { private readonly MainViewModel _viewModel; public MainWindow() { InitializeComponent(); _viewModel = new MainViewModel(); _viewModel.ViewChanged += OnViewChanged; DataContext = _viewModel; Loaded += MainWindow_Loaded; } private async void MainWindow_Loaded(object sender, RoutedEventArgs e) { await _viewModel.InitializeAsync(); } private void OnViewChanged(string viewName) { // 隐藏所有视图 IdleView.Visibility = Visibility.Collapsed; PaymentView.Visibility = Visibility.Collapsed; QRCodeView.Visibility = Visibility.Collapsed; WashingView.Visibility = Visibility.Collapsed; SettingsView.Visibility = Visibility.Collapsed; // 显示指定视图 switch (viewName) { case "Idle": IdleView.Visibility = Visibility.Visible; break; case "Payment": PaymentView.Visibility = Visibility.Visible; break; case "QRCode": QRCodeView.Visibility = Visibility.Visible; break; case "Washing": WashingView.Visibility = Visibility.Visible; break; case "Settings": SettingsView.Visibility = Visibility.Visible; break; } } private void Package_Click(object sender, MouseButtonEventArgs e) { if (sender is FrameworkElement element && element.DataContext is Package package) { _viewModel.SelectPackageCommand.Execute(package); } } }