Files
petwash/PetWashControl/Views/MainWindow.xaml.cs
GukSang.Jin 434804a2c4 feat: add ui
2026-02-25 18:30:24 +08:00

59 lines
1.6 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;
// 显示指定视图
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;
}
}
private void Package_Click(object sender, MouseButtonEventArgs e)
{
if (sender is FrameworkElement element && element.DataContext is Package package)
{
_viewModel.SelectPackageCommand.Execute(package);
}
}
}