63 lines
1.8 KiB
C#
63 lines
1.8 KiB
C#
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);
|
|
}
|
|
}
|
|
} |