Files
petwash/PetWashControl/Views/MainWindow.xaml.cs

63 lines
1.8 KiB
C#
Raw Normal View History

2026-02-25 15:43:47 +08:00
using PetWashControl.ViewModels;
2026-02-25 18:30:24 +08:00
using PetWashControl.Models;
2026-02-25 15:43:47 +08:00
using System.Windows;
2026-02-25 18:30:24 +08:00
using System.Windows.Input;
2026-02-25 15:43:47 +08:00
namespace PetWashControl.Views;
public partial class MainWindow : Window
{
private readonly MainViewModel _viewModel;
public MainWindow()
{
InitializeComponent();
_viewModel = new MainViewModel();
2026-02-25 18:30:24 +08:00
_viewModel.ViewChanged += OnViewChanged;
2026-02-25 15:43:47 +08:00
DataContext = _viewModel;
Loaded += MainWindow_Loaded;
}
private async void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
await _viewModel.InitializeAsync();
}
2026-02-25 18:30:24 +08:00
private void OnViewChanged(string viewName)
{
// 隐藏所有视图
IdleView.Visibility = Visibility.Collapsed;
PaymentView.Visibility = Visibility.Collapsed;
QRCodeView.Visibility = Visibility.Collapsed;
WashingView.Visibility = Visibility.Collapsed;
2026-02-26 11:30:31 +08:00
SettingsView.Visibility = Visibility.Collapsed;
2026-02-25 18:30:24 +08:00
// 显示指定视图
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;
2026-02-26 11:30:31 +08:00
case "Settings":
SettingsView.Visibility = Visibility.Visible;
break;
2026-02-25 18:30:24 +08:00
}
}
private void Package_Click(object sender, MouseButtonEventArgs e)
{
if (sender is FrameworkElement element && element.DataContext is Package package)
{
_viewModel.SelectPackageCommand.Execute(package);
}
}
2026-02-25 15:43:47 +08:00
}